[每日一题2020.06.21]leetcode #124 DFS二叉树

Posted       

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[每日一题2020.06.21]leetcode #124 DFS二叉树相关的知识,希望对你有一定的参考价值。

题目

1592722350144

dfs求每一个节点向左走最大路径 + 节点值 + 向右走最大路径 搜索完后的最大值就是答案

dfs的出口和规则自己想有时候老想不通, 一看答案又一下子明白, 还是题目刷少了没经验

class Solution {
public:
    int maxSum = 0xc0c0c0c0; // 全局变量, 记录ans
    int dfs(TreeNode* root) {
        if (root == NULL) return 0;
        int left = max (0, dfs(root->left));    // 记录向左走可以达到的最大值
        int right = max (0, dfs(root->right));  // 记录向右走可以达到的最大值
        int nowSum = left + right + root->val;  // 对于每一个节点, 其最大值 = 向左走最大值 + 节点值 + 向右走最大值
        maxSum = max(maxSum, nowSum); // 最大值更新
        return root->val + max(left, right); // 返回到上一层
    }

    int maxPathSum(TreeNode* root) {
        dfs(root);
        return maxSum;
    }
};

以上是关于[每日一题2020.06.21]leetcode #124 DFS二叉树的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode每日一题(3)

LeetCode每日一题

LeetCode2022 7月 每日一题

LeetCode2022 7月 每日一题

LeetCode9月 每日一题

LeetCode9月 每日一题