二叉树的后继节点

结点的后继节点:
1)如果该结点存在右子树,那么该节点的后继节点就是该节点右子树中最小的结点。
2)如果该节点不存在右子树,往上去找,这是一个\的趋势,直到转折,出现"<"形式,就找到了他的后继节点。
代码:
| `BiTree* successorNode(BiTree* root, int value) {
BiTree* current = findNode(root, value);
if (current->right)
return minValue(current->right);
BiTree* parent = current->parent;
BiTree* child = current;
while (parent && parent->right == child) {
child = parent;
parent = parent->parent;
}
return parent;

}`

你可能感兴趣的:(总结,二叉树的后继节点)