두 갈래 나무 중 두 노드의 가장 가까운 공공 조상을 찾다
862 단어 필기시험
class Node
{
Node * left;
Node * right;
Node * parent;
};
/* p,q 。*/
Node * NearestCommonAncestor(Node * p,Node * q);
알고리즘 사상: 이 문제의 관건은 모든 노드에 부모 노드를 가리키는 바늘을 포함하는 데 있다. 이로써 프로그램은 간단한 알고리즘으로 실현할 수 있다.먼저 p의 부모 노드 p->parent를 제시한 다음에 q의 모든 부모 노드를 순서대로 p->parent와 비교한다. 만약에 두 노드가 같다는 것을 발견하면 이 노드는 최근의 공공 조상으로 직접 되돌려준다.만약 같은 노드를 찾지 못하면 q의 모든 부모 노드를 순서대로 p->parent->parent와 비교합니다...p->parent==root까지.
Node * NearestCommonAncestor(Node * root,Node * p,Node * q)
{
Node * temp;
while(p!=NULL)
{
p=p->parent;
temp=q;
while(temp!=NULL)
{
if(p==temp->parent)
return p;
temp=temp->parent;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
두 갈래 나무 중 두 노드의 가장 가까운 공공 조상을 찾다제목: 두 갈래 나무 중 두 노드의 가장 가까운 공공 조상을 찾아 되돌려 달라고 한다. 알고리즘 사상: 이 문제의 관건은 모든 노드에 부모 노드를 가리키는 바늘을 포함하는 데 있다. 이로써 프로그램은 간단한 알고리즘...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.