求二叉树中节点的最大距离
struct node{
Node Left;
Node Right;
int MaxLeft;//左子树到该节点的最长距离
int MaxRight;//右子树到该节点的最长距离
char chValue;
};
void FindMaxLen(Node T)
{
int tmpMax = 0;
if (NULL == T)
{
return;
}
if (NULL == T->Left)
{
T->MaxLeft = 0;
}
if (NULL == T->Right)
{
T->MaxLeft = 0;
}
if (NULL != T->Left)
{
FindMaxLen(T->Left);
}
if (NULL != T->Right)
{
FindMaxLen(T->Right);
}
if (NULL != T->Left)
{
if (T->Left->MaxRight < T->Left->MaxLeft)
{
tmpMax = T->Left->MaxLeft + 1;
}
else
{
tmpMax = T->Left->MaxRight + 1;
}
T->MaxLeft = tmpMax;
}
if (NULL != T->Right)
{
tmpMax = 0;
if (T->Right->MaxRight < T->Right->MaxLeft)
{
tmpMax = T->Right->MaxLeft + 1;
}
else
{
tmpMax = T->Right->MaxRight + 1;
}
T->MaxRight = tmpMax;
}
if (T->MaxLeft + T->MaxRight > MaxLen)
{
MaxLen = T->MaxLeft + T->MaxRight;
}
转载于:https://www.cnblogs.com/SLVR/p/3419117.html
求二叉树中节点的最大距离相关推荐
- 编程之美-求二叉树中节点的最大距离方法整理
[试题描述] 方法:
- 【编程题目】求二叉树中节点的最大距离
第 11 题(树) 求二叉树中节点的最大距离... 如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的, 我们姑且定义"距离"为两节点之间边的个数. 写一个程序, 求一棵二 ...
- c++实现二叉树中节点的最大距离 - c++语言程序开发技术文章,c++实现二叉树中节点的最大距离...
文章前半部分能懂,可是后面的Milo不是很理解,可能有待以后学习..... 微软面试题之一,难度系数中,题目描述如下: 求二叉树中节点的最大距离... 如果我们把二叉树看成一个图,父子节点之间的连线看 ...
- 编程之美 求数组中的最长递增子序列
如题,例如:存在数组 1,-1,2,-3,4,-5,6,-7 ,则最长的递增子序列是:1,2,4,6. 法一: 蛮力法 int Lis(int* arr,int n) {int iCount=0;// ...
- 变形二叉树中节点的最大距离(树的最长路径)——非递归解法
问题描写叙述: 假设我们把二叉树看成一个图,父子节点之间的连线看成是双向的.我们姑且定义"距离"为两节点之间边的个数. 写一个程序,求一棵二叉树中相距最远的两个节点之间的距离.測试 ...
- 【100题】第十一题(二叉树中节点的最大距离)
一,题目: 如果把二叉树看成一个图,父子节点之间的连线看成是双向的(无向图),定义"距离"为两节点之间边的个数.写一个程序,求一棵二叉树中相距最远的两个节点之间的距离 ...
- 编程之美求二进制数中1的个数扩展题
转自:http://s.sousb.com/?p=253 编程之美2.1节中的扩展题第1题:如果变量是32位的Dword,则如何统计该二进制数中1的个数. 对于该题,原本的想法还是想采用书中解法三,也 ...
- 编程之美-求数组中最长递增子序列(LIS)方法整理
[试题描述] 方法一:时间复杂度O(n^2) 方法二:时间复杂度O(n^2) 方法三: 修改方法二中的穷举搜索部分为如下: 如果把上述查询部分利用二分搜索进行加速,可以得到时间复杂度为O(nlogn) ...
- 编程之美-求二进制数中1的个数方法整理
[试题描述] 方法一:穷举法(暴力搜索) 方法二:使用位操作 方法三: 方法四:使用分支操作 方法五:查表法,时间复杂度O(1),以空间换时间
最新文章
- 全球AI人才数量“热图”分析:中国全球第7 欧洲是人才聚集地
- python核心编程学习(第四章)
- django mysql连接超时设置_坑(一)—— Django ORM 连接超时的坑
- day 0314函数的进阶
- 【新星计划】Matlab实现数据导出
- PowerDesigner连接SqlServer数据库
- LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)
- 支持向量机python代码实现
- Linux下安装rpm出现error: Failed dependencies
- 【转】Python-面向对象进阶
- 计算机原子指令,计算机体系结构——多线程(核)访存“上锁”——原子指令...
- Scala 与设计模式(六):Bridge 桥接模式
- 易车网靠谱吗,蛋蛋告诉你
- python零基础教学plc_编程零基础应当如何开始学习 Python?
- 前端开发工程师 - 02.JavaScript程序设计 - 第2章.进阶篇
- 可能改变世界的13个“终结”(上)
- Python -- 限流 throttle
- Python中办公软件(创建excel)
- 新一代光学工程仿真软件RED MPC支持的功能
- cityscapes数据集标签的处理
热门文章
- LQ训练营(C++)学习笔记_枚举算法
- Linux下载源码编译出错,linux下fortran中编译代码时“undefined reference to `_gfortran_st_”错误...
- 网络流--最大流--Dinic模板矩阵版(当前弧优化+非当前弧优化)
- 51NOD 1212 无向图最小生成树
- linux如何实现相关功能源代码
- SQL:find duplicate rows -- using group or having
- 本次奔驰漏油事件,要花多少钱打广告才能弥补损失?
- 腾讯信用向全国开放了,据说700分都算低的!
- 如何快速把借呗额度提高到10万?
- PIC32单片机harmony开发环境 - uart例程和代码分析