【题目】:124. 二叉树中的最大路径和
这题有两个关键点:
- 更新res:
res = max(l + r + root->val, res)
,左子树最大链长 + 右子树最大链长 + 根节点的值其实也可以当成一条链 - 子树root的最大链长:
max(max(l, r) + root->val, 0)
,由于一个子树的链长只能取左子树的最大链长或右子树的最大链长,所以这里先max(l, r)
,也别忘了+root->val
,由于这个值可能比0还小,如果比0小那要你还有什么用?直接舍弃好了(0表示什么都不取)
class Solution { |
- 时间复杂度: O(n)
- 空间复杂度: O(n)