二叉树中最大路径和
解题思路:
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
var maxSum int
func maxPathSum(root *TreeNode) int {
maxSum = math.MinInt32
reverseTree(root)
return maxSum
}
func reverseTree(root *TreeNode)int{
if root==nil{
return 0
}
left:=max(reverseTree(root.Left),0)
right:=max(reverseTree(root.Right),0)
maxSum=max(maxSum,root.Val+left+right)
return root.Val+max(left,right)
}
func max(x,y int)int{
if x>y{
return x
}
return y
}复杂度分析
最后更新于