有包含节点的avl树,每个节点只有3个字段:
1.right child
2.左撇子
3.value(key)
注意它没有这样的字段“parrent”或“父亲”。 我的问题是:如果我们想知道树中每个节点的后继者, 并且不使用任何LinkedList或任何集合,这样做的方法是什么?
答案 0 :(得分:0)
你可以做这样的事情
// Returns the last node in the inorder traversal of tree,
// or prev if tree is null.
Node printSuccessors(Node tree, Node prev) {
if (tree == null) {
return prev;
}
Node lastLeft = printSuccessors(tree.leftChild(), prev);
if (lastLeft != null) {
System.out.println("The successor of " + lastLeft.key()
+ " is " + tree.key());
}
return printSuccessors(tree.rightChild(), tree);
}
然后拨打printSuccessors(root, null)
。