在二叉树中找到一个节点的后继节点
二叉树中一个节点的后继节点指的是,二叉树的中序遍历的序列中的下一个节点。
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探