关闭

微软算法100道题-----求二叉树中节点的最大距离

标签: 算法微软
221人阅读 评论(0) 收藏 举报
分类:

题目:

求二叉树中节点的最大距离...

如果我们把二叉树看成一个图,
父子节点之间的连线看成是双向的,
我们姑且定义"距离"为两节点之间边的个数。
写一个程序,
求一棵二叉树中相距最远的两个节点之间的距离。


思路:

求二叉树中节点最大距离,最大的距离可以分为两种情况;

第一种经过根节点,就是左子树最左节点到右子树的最右节点;

第二种就是在根节点的左子树或者右子树上,不经过根节点,但肯定经过自己子树的根节点;

所以这种题可以分为递归解

改为遍历树的节点,算出每个节点的两个节点的最大距离,

求每个节点的两个节点的最大距离的就是这个节点的最左子树距离加上最右子树距离;

然后递归每个节点,得出结果;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15495次
    • 积分:735
    • 等级:
    • 排名:千里之外
    • 原创:61篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章存档