码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-06-21 15:36:34      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:最大   loading   tree   img   路径   搜索   最大值   规则   ima   

题目

技术图片

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二叉树

标签:最大   loading   tree   img   路径   搜索   最大值   规则   ima   

原文地址:https://www.cnblogs.com/roccoshi/p/13172446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!