11. 求二叉树中节点的最大距离
来源:互联网 发布:sql join 编辑:程序博客网 时间:2024/06/05 06:25
如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,
我们姑且定义"距离"为两节点之间边的个数。
写一个程序,
我们姑且定义"距离"为两节点之间边的个数。
写一个程序,
求一棵二叉树中相距最远的两个节点之间的距离。
HANDWRITING:
int distance (node *root) {int lh, rh;if (root->m_pLeft == 0) lh = 0;else lh = distance(root->m_pLeft);if (root->m_pRight == 0) rh = 0;else rh = distance(root->m_pRight);return lh > rh ? lh + 1 : rh + 1;}
ANSWER FROM:http://blog.csdn.net/v_july_v/article/details/6870251
This is interesting... Also recursively, the longest distance between two nodes must be either from root to one leaf, or between two leafs. For the former case, it’s the tree height. For the latter case, it should be the sum of the heights of left and right subtrees of the two leaves’ most least ancestor.
The first case is also the sum the heights of subtrees, just the height + 0.
int maxDistance(Node * root) { int depth; return helper(root, depth);}int helper(Node * root, int &depth) { if (root == NULL) { depth = 0; return 0; } int ld, rd; int maxleft = helper(root->left, ld); int maxright = helper(root->right, rd); depth = max(ld, rd)+1; return max(maxleft, max(maxright, ld+rd));}
FROM:http://blog.csdn.net/v_july_v/article/details/6870251
- 11.求二叉树中节点的最大距离
- 11.求二叉树中节点的最大距离
- 11. 求二叉树中节点的最大距离
- 11.求二叉树中节点的最大距离...
- 【二叉树】求二叉树中节点的最大距离
- 求二叉树中节点最大距离
- 3.8求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 11、求二叉树中节点的最大距离...
- 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 求二叉树中两个节点的最大距离
- JSP与SERVLET的关系
- vim 小技巧------写程序注释
- [转]nginx下如何增加网站
- 九度OJ月赛---题目1534:数组中第K小的数字 (二分搜索)
- UVa 10986 Sending email 优先队列优化的dijkstra 和 朴素dijkstra 效率对比
- 11. 求二叉树中节点的最大距离
- 二叉树的前序、中序、后序遍历(非递归)
- [转]apache下如何增加网站for linux(绑定域名)
- 如何在ubuntu13.04启动ssh
- 各种编程语言和方式对比
- 数位dp+LIS+状态压缩-hdu-4352-XHXJ's LIS
- 系统设计之粒度控制
- Java 基础加强 - 反射Reflect
- 协方差与自相关