LeetCode 124 二叉樹中的最大路徑和

給定一棵非空二叉樹,返回其最大路徑和,路徑爲從任意節點出發,到達任意節點的序列,至少包含一個節點。

本道題中路徑可能彎折,因此首先要簡化,考慮從某個節點往下搜索,路徑和是多少,在考慮跨越該節點,

最大路徑和是多少。

class Solution:
    def __init__(self):
        self.max_val=-sys.maxsize

    def maxPathSum(self, root: TreeNode) -> int:
        self.helper1(root)
        return self.max_val

    def helper1(self,node):
        if node is None:
            return -sys.maxsize
        path1=self.helper1(node.left)
        path2=self.helper1(node.right)
        self.max_val=max(self.max_val,node.val,node.val+path1,node.val+path2,node.val+path2+path1)
        return max(node.val,node.val+path2,node.val+path1)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章