目录

三个月算法进阶--day29

float("-inf”)

子树

一个子树的内部路径,当然包含当前子树的根节点,否则就是子树的子树的内部路径。

递归反推就是由底向上,从叶子结点往上计算子树的结果值

遍历二叉树,递归或者双循环

记录

leetcode第124题二叉树中的最大路径和

class Solution:
    def __init__(self):
        self.ans = float("-inf")

    def maxPathSum(self, root: TreeNode) -> int:
        def dfs(root):
            if not root:
                return 0
            left = max(dfs(root.left), 0)
            right = max(dfs(root.right), 0)
            self.ans = max(self.ans, left + root.val + right)
            return root.val + max(left, right)

        dfs(root)
        return self.ans