28 lines
548 B
Go
28 lines
548 B
Go
package top100liked
|
|
|
|
// https://leetcode.cn/problems/diameter-of-binary-tree/description/?envType=study-plan-v2&envId=top-100-liked
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
func diameterOfBinaryTree(root *TreeNode) int {
|
|
maxDiameter := 0
|
|
|
|
var depth func(node *TreeNode) int
|
|
depth = func(node *TreeNode) int {
|
|
if node == nil {
|
|
return 0
|
|
}
|
|
left := depth(node.Left)
|
|
right := depth(node.Right)
|
|
maxDiameter = max(maxDiameter, left+right)
|
|
return max(left, right) + 1
|
|
}
|
|
|
|
depth(root)
|
|
return maxDiameter
|
|
}
|