0
class Node {
int data,
Node* P1,
Node* p2;
}
우리는 노드가 원형 이중 링크 목록 또는 이진 트리를 나타내는 경우, 결정해야 다음과 같은 구조의 노드를 감안할 때입니다. 제 생각에는 우리는 한 방향으로
node = givenNode;
while(node->P1 != null && node->P1 != givenNode)
{
node = node->p1
}
if(node == givenNode) // It means Circular DLL
else if(node == null) // It means Tree
에 주어진 노드를 순회 시작해야 그리고이를 감지하는 O (n)의 시간이 걸릴 것이다.
이보다 나은 방법이 있는지 제안 해주십시오.
이 하나 이상있다 노드 목록에! (그렇지 않으면 해결할 수 없거나 두 응답이 모두 유효합니다.) –
@ george.zakaryan. 빠른 답변을 주셔서 감사합니다. 우리가 첫 번째 검사를 추가하지 않으면 널 포인터 예외가 발생할 수 있기 때문에 좀 더 정확한 답을 편집했습니다. –