543. Diameter of Binary Tree

Given a binary tree, you need to compute the length of the diameter of the tree.

The diameter of a binary tree is the length of the longest path between any two nodes in a tree.

This path may or may not pass through the root.

Example:
Given a binary tree

          1
         / \
        2   3
       / \     
      4   5    

 

Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3].

Note: The length of path between two nodes is represented by the number of edges between them. 

路径未必经过root结点,

参考

1

2

34

5678

最长的跨度是第四层的结点之间,比如5和8的跨度是4,53248

 

经过观察可以发现,最大路径存在于,左子结点和右子结点之间。

比如上面第一个例子的34和35,

第二个例子根结点的右结点不存在

 

 还有一种情况

1

2

3

单层的,叶结点和根结点距离最大

 

https://www.geeksforgeeks.org/diameter-of-a-binary-tree/

The diameter of a tree T is the largest of the following quantities:

* the diameter of T’s left subtree
* the diameter of T’s right subtree
* the longest path between leaves that goes through the root of T (this can be computed from the heights of the subtrees of T) 

 https://www.jianshu.com/p/6e3125b552f4

本题要求最长路径长,可以转化为求最长路径中的节点个数-1
最长路径包含以下三种情况:

1 根节点包含在最长路径中,则节点个数 = 左树高 + 右树高 + 1
2 最长路径在左子树中,则可以求左子树的最长路径的节点数目
3 最长路径在右子树中,则可以求右子树的最长路径的节点数目

对这三种情况进行比较,即可求出最长路径

 

 

 

 

 

作者:Chuck Lu    GitHub    
posted @   ChuckLu  阅读(310)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-06-19 NPOI设置Excel中的单元格识别为日期
2017-06-19 FileStream vs/differences StreamWriter?
2017-06-19 Excel显示当前日期
2015-06-19 编程概念--使用async和await的异步编程
2014-06-19 Winform中使用折叠窗口
点击右上角即可分享
微信分享提示