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

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

	
	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 @   brbrbr  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示