【二叉树】二叉树的直径
0x00 题目
给你一棵二叉树,计算它的直径长度 一棵二叉树的直径长度是: 任意两个结点路径长度中的最大值 这条路径可能穿过也可能不穿过根结点
示例: 有这样一棵二叉树
1
/ /
2 3
/ /
4 5
返回结果:3 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]
0x01 思路
经过 某个节点 的最大路径是: 左子树最大高度 + 右子树最大高度 + 1 所以采用【后序遍历】的方式 记录一个最大值,并同时更新
为什么要采用【后序遍历】呢? 因为这种方式可以得到: 左子树最大高度 和 右子树最大高度
0x02 解法
语言:Swift
树节点:TreeNode
public class TreeNode {
public var val: Int
p
【二叉树】二叉树的直径最先出现在Python成神之路。
共有 0 条评论