- 浏览: 53925 次
- 性别:
- 来自: 北京
文章分类
最新评论
树中任意两个节点之间的距离是指,从一个节点到另一个几点之间的一条路径。
如果路径上边的权值为1,其它权值为0,那么其实就是计算树的权值。
那么怎样该点是不是在这条路径中呢?
其实并不难,只要我们知道左子树和右子树的权值就可以判断了。
如果左子树和右子树的权值都为0,那么该节点肯定不在要查找的路径上。
否则该节点肯定在查找的路径上。如果左右子树权值都不为0,那么当前节点为公共父节点
,查找结束了,但是递归并不能停下来,所以要标示一下。
如果路径上边的权值为1,其它权值为0,那么其实就是计算树的权值。
那么怎样该点是不是在这条路径中呢?
其实并不难,只要我们知道左子树和右子树的权值就可以判断了。
如果左子树和右子树的权值都为0,那么该节点肯定不在要查找的路径上。
否则该节点肯定在查找的路径上。如果左右子树权值都不为0,那么当前节点为公共父节点
,查找结束了,但是递归并不能停下来,所以要标示一下。
static boolean finished = false; public static int findPath(Node root, Node first, Node second) { int value = 0; if (root == first || root == second) { // find the node value = 1; } else if (root == null) { return 0; } int leftvalue = findPath(root.left, first, second); int rightvalue = findPath(root.right, first, second); if (leftvalue * rightvalue != 0 || value * leftvalue != 0 || value * rightvalue != 0) { // find the common parent of the first and second node finished = true; return leftvalue + rightvalue; } else if (leftvalue != 0 || rightvalue != 0 || value != 0) { return finished ? leftvalue + rightvalue : leftvalue + rightvalue + 1; } // return 0; } static class Node { String value; Node left; Node right; }
发表评论
-
查找任意两个节点的公共父节点
2011-11-04 00:42 3554基本思路是对需要查找的节点赋权值为1,其它节点权值为0.那么只 ... -
用5,7,12加减运算,求最少步数得到任意数n
2011-11-03 23:59 1269package www.viking.com.algori ... -
线段重合问题
2011-11-01 13:21 2977问题:y=ax+b; 有很多线段{x0,y0,x1,y1}{ ... -
区间覆盖问题
2011-11-01 13:00 1650问题: 有很多区间,比如[1.1,3.4] [1,3] [-1 ... -
数组循环移位
2011-10-31 22:09 1441比如1 2 3 4 5 循环移位1位 ... -
最大子矩阵的和
2011-10-25 15:30 763package www.viking.com.algo ... -
最大字段和
2011-10-25 14:43 925package www.viking.com.algo ... -
有重复数的全排列
2011-10-21 18:34 8126有重复数的全排列和全排列的算法是一样的 只不过要去掉重复的序列 ... -
有重复数的组合
2011-10-21 18:33 930package com.viking.divide; ... -
无重复数组合
2011-10-21 18:30 930无重复数的组合问题 就 ... -
m n 全排列
2011-10-21 08:54 849n个字符中长度为m的全排列 public class MN ... -
子集的全排列
2011-10-21 08:51 864比如 123 1 2 3 12 21 13 31 23 32 ... -
google笔试题 人民币问题
2011-10-20 23:57 774方法一:递归方法 对 charge[]={1,5,10,20, ... -
查找无向图中的环
2011-10-19 23:51 1922static int[][] M = { { 0 ... -
无重复数的全排列问题
2011-10-18 09:51 911采用分治思想,很多书都有。。。 这里只是引用一下,因为有很几 ... -
爬台阶问题
2011-10-18 07:57 946package com.viking.dynamic; ... -
查找中间数
2011-10-18 00:21 758package com.viking.divide; ... -
整数的因子分解
2011-10-17 23:21 955package com.viking.divide; ...
相关推荐
在本问题中,我们关注的是如何找到一棵给定二叉树中相距最远的两个节点,并计算出这两个节点之间的距离。这里,“距离”被定义为连接两个节点之间边的数量。 #### 解析与解法 **关键洞察:** 首先,值得注意的是,...
这个问题的目标是找到二叉树中任意两个节点之间的最长路径,其中路径的长度定义为节点之间的边的数量。解决这个问题可以帮助我们理解二叉树的性质,以及如何有效地遍历和计算树的属性。 首先,我们需要了解二叉树的...
本话题主要聚焦于使用MATLAB来解决复杂网络中任意两个节点之间的最短路径问题,具体是通过Floyd算法实现。接下来,我们将深入探讨Floyd算法及其在复杂网络中的应用,以及如何计算平均路径长度和对偶矩阵,以分析节点...
在复杂网络中,这个问题扩展为求解任意两个子节点之间的最短距离。 **2. 最小生成树**: 在网络中,最小生成树(Minimum Spanning Tree, MST)是一种用于连接所有节点的树形结构,其边的总权重最小。经典的算法包括...
3. **子树的最大距离**:在二叉树中,任何一个节点的子树的最大距离是指该节点的左右子树中距离最远的两个节点之间的路径长度。这个长度包括节点本身到其左右子树最远节点的距离,以及这两段距离的总和。 问题求解...
总结来说,Dijkstra算法是解决城市间最短路径问题的有效工具,通过对邻接矩阵的操作,能够找出任意两个城市之间的最短路径。在实现时,我们需要考虑数据结构的设计、算法的正确实现以及用户交互的友好性。在给定的...
段的格式为[ID N1 N2](ID为整数,N1 N2代表节点列表中的ID,使得节点N1和节点N2之间存在[无向]边/段,显然是整数类型还) 笔记: 如果没有给出输入,该函数会生成节点和段的随机映射。 这样,如果它在没有输入的...
在计算机科学中,二叉树是一种重要的数据结构,它由节点组成,每个节点最多有两个子节点。二叉树在算法设计和分析中扮演着关键角色,特别是在数据存储、搜索和排序等方面。对于一个给定的二叉树,其节点可以分为内部...
在给定的问题中,我们被要求找到树中任意两个不同节点值之间的最小差值。 首先,我们需要理解题目给出的示例。例如,输入的BST可能是这样的: ``` 4 / \ 2 6 / \ 1 3 ``` 在这个例子中,最小差值是1,因为...
在二维空间中,两点之间的最短距离通常是欧几里得距离,即两点坐标(x1, y1)和(x2, y2)之间的直线距离,计算公式为: \[ d = \sqrt{(x2-x1)^2 + (y2-y1)^2} \] 针对给定的问题,我们有n个这样的点,我们需要遍历...
在社交网络中,距离树可以帮助找出两个人之间的最短联系路径。 在编程实践中,了解并掌握距离树的构建和操作是提高算法效率的关键。对于给定的"distance tree"文件,它可能是实现距离树算法的源代码,包括了构建、...
程序将找到该给定图中任意两个节点之间的最短距离。 要使用此程序,请从命令行打开Path.java并输入3个参数。 每个参数必须用空格分隔。 1)起始节点(0到n-1之间的整数,其中n =节点数)2)终止节点3)txt文件的...
在这个程序中,它被用来处理含有加权边的有向图,以找出图中任意两个节点间的最短路径。 描述中的"金品源码"可能是指这个程序具有高质量或者经过了严格的测试,可以作为参考学习或实际应用的优秀代码样本。在学习或...
生成树是图的一个子集,包含图中的所有顶点,且任意两个顶点之间有且仅有一条路径。在随机节点的生成树建模中,通常会涉及到概率论和图论的知识。比如,可以使用Prim算法或Kruskal算法来构造最小生成树,这两种算法...
这些算法可以帮助我们找到图中任意两个节点之间的最短路径。在这个场景下,Floyd-Warshall可能不是最佳选择,因为它在计算所有节点对的最短路径时效率较低。Dijkstra算法适用于有向图且边权重非负,而BFS适用于无权...
2. **平均距离(Average Path Length)**:平均距离是指网络中任意两个节点间的平均最短路径长度。这个值越小,说明网络中节点之间的联系越紧密。计算平均距离通常涉及到Dijkstra算法或者Floyd-Warshall算法等图论中...
1. **求解最短路径问题**:例如在地图导航中寻找两个地点之间的最短路径。 2. **网络路由**:在网络通信中,确定数据包从源节点到目的节点的最优路径。 3. **社交网络分析**:在社交网络中,找出两个人之间通过最少...
通过以上技术的结合,该项目能够解决实际问题,即在给定的城市网络中,快速准确地找出任意两个城市之间的最短路径,同时还能展示所有可能的路径,这对于物流规划、交通导航等领域都有重要价值。
迪杰斯特拉(Dijkstra)算法是图论中的一个著名算法,主要用于寻找图中两个节点间的最短路径。在这个特定的场景中,我们讨论的是在无向图中应用该算法来计算任意两点间的最短距离。无向图指的是图中的边没有方向性,...