【二叉树6】寻找二叉树中任意节点最远的距离
来源:互联网 发布:mac关不了机 编辑:程序博客网 时间:2024/05/21 14:05
【问题】
距离定义为两个节点中间的节点数目,也就是从一个节点到另一个节点所经过的节点数目(包括自身)。
由分治法的思想,我们可以想到 最远距离叶子节点只能出现在
A. 出现在左子树
B. 出现在右子树
C. 两个节点分别位于左右子树
求max(A,B,C)
【举例】
一颗二叉树如下:
最长路径为:7
【代码】
函数findMaxHand中,首先获得该节点的左孩子与有孩子的高度,二者较大的那个+1得到以当前节点的为根节点的高度。
int findMaxHand(BTreeNode *root, int &maxPath) { if (root == NULL) return 0; int maxleft = findMaxHand(root->leftchild,maxPath); int maxright = findMaxHand(root->rightchild,maxPath); if ((maxleft + maxright +1)>maxPath) maxPath = maxleft + maxright +1; if (maxleft > maxright) return maxleft+1; else return maxright+1;}int findMaxPath(BTreeNode *root) { int maxPath = 0; findMaxHand(root, maxPath); return maxPath;}
- 【二叉树6】寻找二叉树中任意节点最远的距离
- 计算二叉树的任意两节点的最远距离。
- 计算二叉树中最远节点距离
- 二叉树节点的最远距离
- 求一颗二叉树中最远的两个节点的距离
- 求二叉树中最远的两个节点的距离
- 求二叉树中最远的两个节点的距离
- ~求二叉树中最远的两个节点的距离~
- 求二叉树中最远的两个节点的距离
- 求二叉树中两个节点最远的距离
- 二叉树中最远两个节点的距离
- 求二叉树中最远的距离
- 求二叉树中节点的最大距离 即二叉树中相距最远的两个节点之间的距离
- 二叉树系列问题——求二叉树中最远节点的距离
- 求二叉树中最远两个节点距离
- 在二叉树中,距离最远的两个节点的距离
- 在二叉树中,找到距离最远的两个节点的距离
- 在二叉树中,找到距离最远的两个节点的距离
- 无锁HashMap的原理与实现
- 初学者:介绍NSLog的使用
- Java_9+8实训Day0906作业题
- 求最大公约数的函数
- MPEG2 Program Stream结构简单介绍
- 【二叉树6】寻找二叉树中任意节点最远的距离
- poj3469Dual Core CPU(ISAP求最小割)
- android 获取当前时间
- c++实现哈夫曼编码完整代码
- RSA加密算法原理及RES签名算法简介
- oracle中删除重复数据(几个字段相同的数据为相同记录)
- 字符串大小写转换
- 技术资料
- mvc:default-servlet-handler