设计一个算法,计算出给定二叉树中任意2个结点之间的最短路径。 编程任务: 对于给定的二叉树,和二叉树中结点对,编程计算结点对之间的最短路径。 数据输入: 由文件input.txt给出输入数据。第1行有1个正整数n,表示给定的二叉树有n个顶点,编号为1,2,…,n。接下来的n行中,每行有3个正整数a,b,c,分别表示编...
考虑以下二叉树: ``` 1。 / \。 2 3。 / \ / \。 4 5 6 7。 ``` 现在,假设我们要找到节点4和节点7之间的最短路径。 3.1步骤1。 首先,我们将树的根节点1放入队列中。 3.2步骤2 5。 接下来,我们依次处理队列中的节点,直到找到目标节点之一或队列为空。 从队列中取出节点1,发现它不是目标节点之...
对于上图所示二叉树,2和8的最短路径是2,8和6的最短路径是5。 二叉树中求任意两个节点的最短路径可以分为以下三步: 1.求出两个节点的最近公共祖先root(这个可以参考我另一篇文章https://www.jianshu.com/p/3989c663e26d) 2.利用深度搜索分别求出node1和node2到root的路径 3.对两个路径长度求和即得所...