【发布时间】:2012-09-09 21:31:50
【问题描述】:
我正在编写一个代码来查找二叉树( NOT A BINARY SEARCH TREE )的有序后继。这只是一个练习题。更喜欢复习树的概念。
我正在进行有序遍历并跟踪前一个节点。每当前一个节点变得等于我们正在搜索的后继节点时,我打印当前节点。
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有意义吗?或者你实际上是要打印root?
-
@DavidB 完成。它是一个静态变量。
-
@Marcus 是的,只是一个错字,它只是 root。我会编辑。
-
这是 C++ 还是 C 还是 Java?这不是全部三个。
标签: data-structures language-agnostic tree binary-tree