我正在編寫一個代碼來尋找二叉樹(不是二叉搜索樹)的有序繼任者。這只是一個練習題。更喜歡刷樹概念。二叉樹的有序繼任者
我在做一個按順序遍歷並跟蹤前一個節點。每當前一個節點等於我們正在搜索的後繼節點時,就會打印當前節點。
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完成。它是一個靜態變量。 – h4ck3d