在二叉树中找到一个节点的后继节点

二叉树中一个节点的后继节点指的是,二叉树的中序遍历的序列中的下一个节点。

	
	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;
		}
	}
posted @ 2022-02-10 23:04  brbrbr  阅读(35)  评论(0)    收藏  举报