vlambda博客
学习文章列表

每日一题13-二叉树中的最大路径和

给你一个二叉树的根节点 root ,返回其最大路径和。


本题中,路径被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径 至少包含一个 节点,且不一定经过根节点。


链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-hard/xdhfe5/


话不多说,深度优先遍历,递归精髓~

class Solution: def maxPathSum(self, root: TreeNode) -> int: res = float("-inf") def maxSum(root): nonlocal res if not root: return 0 l, r = maxSum(root.left), maxSum(root.right) res = max(res, max(l, 0) + max(r, 0) + root.val) return max(0, l, r) + root.val maxSum(root) return res