LeetCode 543. 二叉树的直径

题目描述

543. 二叉树的直径

image-20250420231824533

image-20250420231842764

思路分析

二叉树的直径可以通过树的深度来计算。

image-20250510110509431

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
func diameterOfBinaryTree(root *TreeNode) int {
	var res int

	// 返回当前节点的最大深度
	var dfs func(node *TreeNode) int
	dfs = func(node *TreeNode) int {
		if node == nil {
			return 0
		}
		// 递归计算左子树和右子树的最大深度
		left := dfs(node.Left)
		right := dfs(node.Right)

		// 当前节点的路径长度为 left + right
		res = max(res, left+right)

		// 返回当前节点的最大深度
		return max(left, right) + 1
	}

	dfs(root)
	return res
}

➡️ 点击查看 Java 题解

1
write your code here
本文作者:
本文链接: https://hgnulb.github.io/blog/2025/83624487
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!