求二叉树中节点的最大距离
2015-07-26 20:15
246 查看
编程之美中的题目,但是书上的代码递归太复杂,整理了个优化的解法:
思路: 可以转换为求二叉树中任意一个节点左右子树的高度和
思路: 可以转换为求二叉树中任意一个节点左右子树的高度和
struct Node{ Node *pLeft; Node *pRight; }; int maxLen = 0; int treeDepth(Node *pRoot, &maxLen){ if(pRoot == NULL) return -1; int leftDepth = treeDepth(pRoot->pLeft, maxLen) + 1; int rightDepth = treeDepth(pRoot->pRight, maxLen) + 1; if(maxLen < leftDepth + rightDepth) maxLen = leftDepth + rightDepth; return leftDepth > rightDepth ? leftDepth : rightDepth; }
相关文章推荐
- 记录自己的傻逼的错误:找不到或无法加载主类
- Python项目9:文件共享2
- LightOJ1248-Dice (III)
- hdoj 1005Number Sequence
- Problem K 栈
- Android Gradle Plugin指南(三)----依赖关系,Android库和多项目设置
- UVA 152 Tree's a Crowd
- 如何搭建轻量级架构-代码组织篇
- 前端开发学习网站
- UVA 10361
- Swift学习笔记(九)——整型Int在Swift中表示的最大值最小值问题
- 过河卒
- 关于move_uploaded_file()出错的问题
- GTK入门学习:布局练习之计算器
- 串口的Hex/AscII发送与显示
- cdoj 491 Tricks in Bits
- 剑指offer-面试题21.包含min函数的栈
- C语言 三子棋 小游戏
- ESTORE OPENCART 清爽现代主题模板 ABC-0063
- Sed 命令练习