二叉树两个结点的最短路径
创作时间:
作者:
@小白创作中心
二叉树两个结点的最短路径
引用
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;
}
热门推荐
高等代数有哪些实际应用
嘴皮干燥起皮怎么办?5个实用解决方案帮你轻松应对
收二手电脑,如何确保性能与性价比的平衡?
翻新攻略:旧房改造的实用指南
SQL Server网络配置详解:监听器、协议与安全注意事项
小区维修基金的保管和使用规定
拼音学习新玩法:打造互动游戏激发学习兴趣
快速上手ESP32 GPIO外部中断(基于ESP-IDF&VSCode)
研究揭示:儿童期起病系统性红斑狼疮患者使用利妥昔单抗后的感染风险
交互设计的基本原则
汽车防刮的措施有哪些?这些措施的实际效果如何?
榜单隐藏大佬一直在,《哪吒2》赢它就是真赢了,而非《阿凡达》
选择节能空调的八大必备技巧:智能省电、品牌保障两手抓
BP与壳牌缩减可再生能源项目投资,引发市场关注
受欢迎的第一人称射击游戏有哪些 高人气射击游戏大全2025
华为起诉小米专利侵权 后者反击无效!为何双方握手 知识产权局全文讲述
维摩诘居士的“不二法门”指什么?为什么普通人读完,受益无量?
项目管理务虚会的全流程指南
复兴号上有WiFi吗
什么是电池额定容量与典型容量?
C++ 程序员入门需要多久,怎样才能学好?
人身险产品包括哪些类型的
如何准确计算股票的盈利情况?这种计算方法有哪些实际应用?
反流性咽喉炎的睡眠姿势与治疗方法
瑞士房地产市场:不是不想买,只恨价太高
正畸前必看!如何分辨好的正畸医生?踩坑多次后我总结出了判断牙科医生水平的方法!
八种癌症五年生存率超60%,中国癌症治疗迎来重大突破
螺栓扭矩与预紧力计算:从基础理论到工程应用
奥沙利铂化疗方案
文化中国行 | “老三孔”“新三孔”交相辉映 千年古城焕“新生”