美文网首页
lc124. 二叉树中的最大路径和

lc124. 二叉树中的最大路径和

作者: poteman | 来源:发表于2019-07-13 13:07 被阅读0次

分治法:
当前的最大值为 当前值、当前值+左孩子的值、 当前值+右孩子的值 的最大值。
保留的最大值为 当前值最大值、保留的最大值、 当前值++左孩子的值+右孩子的值 的最大值。

def maxPathSum(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        if not root:
            return 0
        self.res = float("-inf")
        self.dfs(root)
        return self.res
    
    def dfs(self, root):
        if not root:
            return 0
        left_res = self.dfs(root.left)
        right_res = self.dfs(root.right)
        cur = max(root.val, root.val + left_res, root.val + right_res)
        self.res = max(self.res, cur, root.val + left_res + right_res)
        return cur

相关文章

网友评论

      本文标题:lc124. 二叉树中的最大路径和

      本文链接:https://www.haomeiwen.com/subject/szppkctx.html