当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。

练题计划 · 力扣 HOT 100

二叉树的直径

简单diameterOfBinaryTree()
时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(n),空间 O(h)

二叉树的直径

给你一棵二叉树的根节点 root,返回该树的直径长度。

二叉树的直径是任意两个节点之间路径长度的最大值。这条路径可能不经过根节点。路径长度以边数计算。

约定

  • 树用层序数组表示,null 表示空节点。
  • 直径长度是路径上的边数,而不是节点数。

输入

  • root:二叉树根节点,节点数范围 [1, 10^4],节点值范围 -100 ~ 100

输出

直径长度(整数)。

示例一

输入:

root = [1,2,3,4,5]

输出:

3

解释:直径是路径 4 -> 2 -> 1 -> 3(或 5 -> 2 -> 1 -> 3),共 3 条边。

示例二

输入:

root = [1,2]

输出:

1

示例三

输入:

root = [1]

输出:

0

复杂度要求

  • 时间复杂度:O(n),每个节点访问一次
  • 空间复杂度:O(h),递归栈,h 为树高
Loading...

输入

[[1,2,3,4,5]]

预期输出

3
自定义用例