添加新题目
This commit is contained in:
28
二叉树/二叉树的直径/main.go
Normal file
28
二叉树/二叉树的直径/main.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package main
|
||||
|
||||
type TreeNode struct {
|
||||
Val int
|
||||
Left *TreeNode
|
||||
Right *TreeNode
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
}
|
||||
|
||||
func diameterOfBinaryTree(root *TreeNode) int {
|
||||
a, b := maxpath(root.Right)
|
||||
c, d := maxpath(root.Left)
|
||||
return max(a+b, c, d)
|
||||
}
|
||||
|
||||
func maxpath(p *TreeNode) (int, int) {
|
||||
if p == nil {
|
||||
return 0, 0
|
||||
}
|
||||
leftpathnum, leftcurmax := maxpath(p.Left)
|
||||
rightpathnum, rightcurmax := maxpath(p.Right)
|
||||
curmax := max(leftpathnum+rightpathnum, leftcurmax, rightcurmax)
|
||||
|
||||
return 1 + max(leftpathnum+rightpathnum), curmax
|
||||
}
|
||||
Reference in New Issue
Block a user