이진 트리 (이진 검색 트리가 아님)의 순서대로 후행을 찾는 코드를 작성했습니다. 그것은 단지 연습 문제 일뿐입니다. 나무 개념을 닦는 것이 더 좋아.이진 트리의 순차 후계자
이전 노드를 순차적으로 탐색하고 추적하고있었습니다. 이전 노드가 후행 노드를 검색하는 노드와 동일해질 때마다 현재 노드를 인쇄합니다.
void inOrder(node* root , node* successorFor) {
static node* prev = null;
if(!root)
return;
inOrder(root->left,successorFor);
if(prev == successorFor)
print(root);
prev = root;
inOrder(root->right,successorFor);
}
내 솔루션이 실패 할 수있는 몇 가지 테스트 사례를 찾고 있었습니까? 내 접근 방식이 맞는지 아닌지. 그렇지 않다면 어떻게해야합니까?
어디에서'prev'가 정의되어 있습니까? –
나는 알고리즘이 옳다고 생각하지만 successorFor를 인쇄하는 것이 이치에 맞습니까? 또는 실제로 루트를 인쇄 하시겠습니까? – Marcus
@DavidB Done. 그것은 정적 변수입니다. – h4ck3d