求二叉树中最远的距离
来源:互联网 发布:斑马网络计划破解软件 编辑:程序博客网 时间:2024/05/01 20:56
参考资料:
http://blog.csdn.net/lalor/article/details/7626678
http://blog.csdn.net/luckyxiaoqiang/article/details/7518888#comments
分为两种情况来讨论:
1)二叉树中最远的两个节点经过根节点,如情况A
2)二叉树中最远的两个节点不经过根节点,在其左子树或者右子树中
所以:二叉树中最远的距离 = 【(左子树距离根节点最远的节点 + 右子树距离根节点最远的节点),左子树中最远的距离,右子树中最远的距离】三者的最大值
#include <iostream>using namespace std;#include <cstdio>#include <cstdlib>#include <vector>#include <cstring>/* maxleft 是指左子树中离根节点最远的距离,maxright指右子树离根节点最远的距离 */int getmaxdistance(treeNode* root,int &maxleft,int &maxright){ if(root == NULL){ maxleft = 0; maxright = 0; return 0; } int maxLL,maxLR,maxRL,maxRR; int leftmaxdis,rightmaxdis; if(!root->left){ leftmaxdis = 0; maxleft = 0; }else{ leftmaxdis = getmaxdistance(root->left,maxLL,maxLR); maxleft = max(maxLL,maxLR) + 1; } if(!root->right){ rightmaxdis = 0; maxright = 0; }else{ rightmaxdis = getmaxdistance(root->right,maxRL,maxRR); maxright = max(maxRL,maxRR) + 1; } return max(max(leftmaxdis,rightmaxdis),maxleft+maxright);}
0 0
- 求二叉树中最远的距离
- 求二叉树中最远的两个节点的距离
- 求二叉树中最远的两个节点的距离
- ~求二叉树中最远的两个节点的距离~
- 求二叉树中最远的两个节点的距离
- 求二叉树中两个节点最远的距离
- 求二叉树最远距离
- Java实现:在二叉树中,求距离最远的两个节点的距离
- 二叉树系列问题——求二叉树中最远节点的距离
- 求二叉树中最远两个节点距离
- 求二叉树中节点的最大距离 即二叉树中相距最远的两个节点之间的距离
- 求二叉树两节点的最远距离
- 求二叉树中最远的两个节点间的距离
- 求一颗二叉树中最远的两个节点的距离
- 二叉树中最远的两个结点的距离
- 二叉树中最远两个节点的距离
- 计算二叉树中最远节点距离
- 二叉树节点的最远距离
- FXC : error X3501: 'main': entrypoint not found
- 03-书架放书法则
- Eclipse安装支持SVN协议的SVN插件
- android _音乐播放器
- Centos下安装mysql
- 求二叉树中最远的距离
- Windows下更新MinGW
- 利用convert命令把硬盘格式FAT32转为NTFS(不影响硬盘数据哦)
- 统计学习那些事
- 带头结点链表的实现
- Codeforces Round #263 (Div. 2) proC
- android学习资源
- 用C# winform 编写一个计算器
- Red John Game