每日一题(74) - 求二叉树中节点的最大距离
2013-08-17 22:36
232 查看
题目来自编程之美
题目
举例(图是网上偷的,在此谢过)
上例中,最大距离为4
思路
后序遍历 + 根据结点的深度 求解 以该节点为根的距离
该节点的距离 等于 其两个子树的最大深度之和
代码
题目
举例(图是网上偷的,在此谢过)
上例中,最大距离为4
思路
后序遍历 + 根据结点的深度 求解 以该节点为根的距离
该节点的距离 等于 其两个子树的最大深度之和
代码
struct BTNode { int m_nData; BTNode* m_pLeft; BTNode* m_pRight; }; int MaxDistance(BTNode* pRoot,int& nMaxDist) { if (!pRoot) { return 0; } int nLeftDept = MaxDistance(pRoot->m_pLeft,nMaxDist); int nRightDept = MaxDistance(pRoot->m_pRight,nMaxDist); nMaxDist = max(nLeftDept + nRightDept,nMaxDist); return max(nLeftDept,nRightDept) + 1; }文中总结递归的思路很好。
相关文章推荐
- 【每日面试题】求一个二叉树中任意两个节点间的最大距离
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 编程之美 3.8 求二叉树中节点的最大距离 3.9 重建二叉树
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 3.8 求二叉树中节点的最大距离
- 微软100题第11题(求二叉树中节点的最大距离)
- 最大距离二叉树节点
- 求二叉树中节点的最大距离的C程序实现代码
- 编程之美: 求二叉树中节点的最大距离》的好解法
- [编程之美]求二叉树中节点的最大距离
- 求二叉树中节点的最大距离(递归算法)
- 11. 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 求二叉树中节点的最大距离
- 【微软100题】求二叉树中节点的最大距离
- 39 二叉树中两个节点最大距离
- 求二叉树中节点的最大距离..........
- 《编程之美》——求二叉树中节点的最大距离(非递归)
- 求一个二叉树中任意两个节点间的最大距离,两个节点的距离的定义是这两个节点间边的个数,比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2,
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法