~求二叉树中最远的两个节点的距离~
来源:互联网 发布:仓库数据分析报告 编辑:程序博客网 时间:2024/05/21 11:01
二叉树经典面试题之一:求二叉树中最远的两个节点的距离
解题思路:
既然求二叉树中最远的两个节点的距离,那么我们首先画一个普通的二叉树来分析:
由上述图可得到两个最远的节点为3和5,而距离为这两个节点的最近公共祖父的左右高度和。
现在我需要考虑一个特殊的二叉树来验证我的结论是否正确:
由上述图可得到两个最远的节点为4和6,而距离为这两个节点的最近公共祖父的左右高度和。
依据上述结论,可编写出解题的代码,完整的源代码及测试用例如下:
size_t MaxPath(BinaryTreeNode<int>* root, size_t& max_path){if(root == NULL){return NULL;}size_t left = MaxPath(root->_left, max_path);size_t right = MaxPath(root->_right, max_path);if(left + right > max_path){max_path = left + right;}return left > right ? left + 1: right + 1;}void TestMaxPath(){int array[] = {1,2,3,'#','#',4};int len = sizeof(array)/sizeof(array[0]);BinaryTree<int> t(array, len, '#');size_t max_path = 0;cout<<MaxPath(t._root, max_path)<<endl;}
0 0
- 求二叉树中最远的两个节点的距离
- 求二叉树中最远的两个节点的距离
- ~求二叉树中最远的两个节点的距离~
- 求二叉树中最远的两个节点的距离
- 求二叉树中两个节点最远的距离
- Java实现:在二叉树中,求距离最远的两个节点的距离
- 求二叉树中节点的最大距离 即二叉树中相距最远的两个节点之间的距离
- 求一颗二叉树中最远的两个节点的距离
- 求二叉树中最远的两个节点间的距离
- 二叉树中最远两个节点的距离
- 求二叉树中最远两个节点距离
- 求二叉树中最远的距离
- 在二叉树中,距离最远的两个节点的距离
- 在二叉树中,找到距离最远的两个节点的距离
- 在二叉树中,找到距离最远的两个节点的距离
- 求二叉树中距离最远的两个叶子节点的距离
- 二叉树的两个节点之间最远的距离
- 查找二叉树最远两个节点的距离
- 从国企到阿里的面试经历(一)
- Java 套接字
- matlab基本矩阵操作
- LIS 最长上升子序列问题 O(n^2)
- Nodejs笔记1
- ~求二叉树中最远的两个节点的距离~
- WebLogic和Tomcat浅谈
- 《C语言及程序设计》教学视频 <18 链表中结点的插入和删除> 示例代码
- Android实战技巧:ViewStub的应用
- 用J-Link烧写u-boot到Nor Flash—— 韦东山嵌入式Linux视频学习笔记04
- 全栈——商业目标、用户体验、一专多长
- CodeForces 732 E.Sockets(贪心)
- angular-依赖注入 显示注入/隐式注入
- Promise实现小球的运动