牛客题霸 NC6 二叉树的最大路径和

Posted Starzkg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客题霸 NC6 二叉树的最大路径和相关的知识,希望对你有一定的参考价值。

https://www.nowcoder.com/practice/da785ea0f64b442488c125b441a4ba4a

解决方案

Go

var res int = -1e10

func maxPathSum(root *TreeNode) int {
	// write code here
	getMaxPathSum(root)
	return res
}

func getMaxPathSum(root *TreeNode) int {
	if root == nil {
		return 0
	}
	leftMax := max(0, getMaxPathSum(root.Left))
	rightMax := max(0, getMaxPathSum(root.Right))

	res = max(res, root.Val+max(leftMax+rightMax, max(leftMax, rightMax)))

	return max(leftMax, rightMax) + root.Val
}

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}

参考文章

以上是关于牛客题霸 NC6 二叉树的最大路径和的主要内容,如果未能解决你的问题,请参考以下文章

牛客题霸 NC15 求二叉树的层序遍历

牛客题霸 NC9 二叉树中是否存在节点和为指定值的路径

NC6 二叉树的最大路径和

牛客题霸 NC12 重建二叉树

牛客题霸 NC16 判断二叉树是否对称

牛客题霸 NC14 按之字形顺序打印二叉树