在二叉树中找到一个节点的后继节点
二叉树中一个节点的后继节点指的是,二叉树的中序遍历的序列中的下一个节点。
public static int getSuccessor(TreeNode node) {
if(node == null)
return 0;
if(node.right != null) {
//getLeftMost
node = node.right;
while(node.left != null)
node = node.left;
return node.val;
} else {
// 往上迭代
// 当node是父节点的左子树, 父节点是后继节点
// 当父节点为空时, 没有后继节点
while(node.parent != null && node.parent.left != node) {
node = node.parent;
}
return node.parent == null ? 0 : node.parent.val;
}
}
本文来自博客园,作者:brbrbr,转载请注明原文链接:https://www.cnblogs.com/brbrbr/p/15881481.html

浙公网安备 33010602011771号