二叉树两个结点的最短路径
创作时间:
作者:
@小白创作中心
二叉树两个结点的最短路径
引用
CSDN
1.
https://blog.csdn.net/puspos/article/details/104659112
本文讨论了二叉树中两个节点的最短路径问题,包括两种情况:一个节点是另一个节点的祖先或孩子,以及两个节点没有直接或间接的父子关系。文章还提供了计算节点到根节点距离的三种方法:深度遍历方法(前序遍历)、回溯法(在list中)和回溯法(直接在path_list中)。
1)node1是node2的祖先节点或孩子结点,可以理解为两个节点在一条线上。例如:Dist(2,4),Dist(6,1)
2)node1和node2没有直接或间接的父子关系。例如,Dist(4,3),他们需要一个共同的祖先结点1连接起来
假设lca是两个节点的最低公共祖先节点:leetcode 236
Dist(n1,n2)=Dist(root,n1)+Dist(root,n2)-2*Dist(root,lca)
求结点到根节点的距离
//深度遍历方法(前序遍历)
public void preOrder(TreeNode root, TreeNode node, int n) {
if(root==null || root==node) return;
preOrder(root.left,node,n+1);
preOrder(root.right,node,n+1);
}
//回溯法 在list中
public void getDistPath(TreeNode root, TreeNode node, List<TreeNode> path_list, List<List<TreeNode>> list) {
if(root==null) return ;
path_list.add(root);
if(root==node) {
list.add(new ArrayList<TreeNode>(path_list));
return ;
}else{
getDistPath(root.left, node, path_list);
getDistPath(root.right,node,path_list);
}
path_list.remove(path_list.size()-1);
}
//回溯法 直接在path_list中
public boolean getDistPath(TreeNode root, TreeNode node, List<TreeNode> path_list) {
if(root==null) return false;
path_list.add(root);
if(root==node) return true;
boolean found=false;
//先去左子树找
found=getDistPath(root.left, node, path_list);
//左子树找不到去右子树找
if(!found) found=getDistPath(root.right,node,path_list);
//左右都找不到,弹出栈顶元素
if(!found) path_list.remove(path_list.size()-1);
return found;
}
热门推荐
开弓没有回头箭:从民间典故看生活选择与决断

热处理金相分析常见问题及解决方案
中国古代罕见复姓:屠门、饕餮、刕、成功
王凯军:重大共性技术——热解在污水污泥处理方面的应用
市场活动准备的策略有哪些
如何挑选适合自己的新能源汽车:从续航、性能到预算全面解析
唱《山路十八弯》的李琼,只因朱迅的一字之差,就葬送乐坛之路?
八珍丸和八珍益母丸区别在哪?选谁调理好
真实案例:非法经营“笑气”获刑七个月,这种“笑料”千万不能沾!
GB44495-2024认证《汽车整车信息安全技术要求》
鸡米花如何制作?制作鸡米花的步骤是什么?
Excel中对数坐标的使用方法与技巧
陈道明:从《末代皇帝》到《庆余年》的演艺传奇
英语写作提升攻略:实用策略及建议,轻松驾驭表达技巧
【以案释法】农村土地承包经营权流转应注意事项!
《文明6》征服指南:蒙古、罗马、法国三大战斗强文明深度剖析
手机成瘾,警惕数字时代的隐形陷阱
棒球纪录片《人生本垒打》第一集播出 棒球体育圈反响热烈
听歌猜歌名:音乐记忆背后的科学原理与实用技巧
互联网创业的新机遇与挑战:三个热门领域的分析与建议
冷静处理突发事故,冷静面对突发事件
换季鼻塞怎么办?2招改善方式与预防习惯一次告诉你
亮点综述:高信噪比和高对比度的眼底成像技术
空调如何设置温度风速模式以达到舒适与节能的平衡?
吃完发芽土豆多久会有中毒反应
《人间喜剧》:巴尔扎克笔下的19世纪法国社会全景
在自然中捕捉教育契机
高性价比游戏电脑配置指南及推荐
薄荷:清凉草药的多重健康益处
探索方程深层内涵,构建数学核心知识体系的有效途径是什么?