【LeetCode热题100】105. 从前序与中序遍历序列构造二叉树(二叉树)

一.题目要求

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。
路径和 是路径中各节点值的总和。
给你一个二叉树的根节点 root ,返回其 最大路径和

二.题目难度

困难

三.输入样例

示例 1:
在这里插入图片描述
输入:root = [1,2,3]
输出:6
解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6

示例 2:
在这里插入图片描述
输入:root = [-10,9,20,null,null,15,7]
输出:42
解释:最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42

提示:
树中节点数目范围是 [1, 3 * 104]
-1000 <= Node.val <= 1000

四.解题思路

这题在递归讨论情况的时候掉了个坑,看了一下评论区有老哥也提到了,就直接引用了。
在这里插入图片描述
可以再简化一下,不用考虑5,6,因为左右会作为根提前出现

五.代码实现

class Solution {
public:
    int maxPathSum(TreeNode* root) {
        dfs(root);
       return m;
    }
    
    int dfs(TreeNode* root) {
       if(!root) return -99999;
       int l = dfs(root->left);
       int r = dfs(root->right);
       int lroot = l + root->val;
       int rroot = r + root->val;
       int lrroot = l + r + root->val;
       int val = root->val;
       int mmax = max(val, max(lrroot, max(lroot, rroot)));
        if(mmax > m) m = mmax;
        
        return max(val, max(lroot, rroot));
    }
private:
        int m = INT_MIN;
};

在这里插入图片描述

六.题目总结

分类讨论,什么情况下可以作为最终结果,什么情况下可以作为递归返回值,二者不是一回事。

最近更新

  1. TCP协议是安全的吗?

    2024-03-29 03:44:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-29 03:44:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-29 03:44:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-29 03:44:02       20 阅读

热门阅读

  1. scau:程序设计与算法基础 学习笔记

    2024-03-29 03:44:02       19 阅读
  2. 基于Ubuntu的Linux系统安装jsoncpp开发包过程

    2024-03-29 03:44:02       23 阅读
  3. Vue3.0云里雾里

    2024-03-29 03:44:02       21 阅读
  4. pta L1-008 求整数段和

    2024-03-29 03:44:02       21 阅读
  5. Day34:学习尚上优选项目

    2024-03-29 03:44:02       21 阅读
  6. 数学建模智能算法

    2024-03-29 03:44:02       20 阅读
  7. 【华为OD机试】机器人搬砖【C卷|100分】

    2024-03-29 03:44:02       22 阅读
  8. react状态管理工具(redux、zustand)

    2024-03-29 03:44:02       22 阅读
  9. Unity 计算两个日期的时间差(含绝对值计算方法)

    2024-03-29 03:44:02       21 阅读
  10. Dubbo 负载均衡算法说明

    2024-03-29 03:44:02       19 阅读
  11. bash版本号怎么样能解决

    2024-03-29 03:44:02       20 阅读