首页 > 其他分享 >LeetCode[124] 二叉树中的最大路径和

LeetCode[124] 二叉树中的最大路径和

时间:2022-11-22 21:22:16浏览次数:77  
标签:rw return val int lw 124 二叉树 ans LeetCode

https://leetcode.cn/problems/binary-tree-maximum-path-sum/description/

dp, 树上搜索
因为值有负数,所以针对一个节点的更新,有四种情况:

  1. 节点值本身
  2. 节点值 + 左子树
  3. 节点值 + 右子树
  4. 节点值 + 左子树 + 右子树

要注意返回给上一层的值不能是第四种情况,因为要作为一条链返回给上层父节点

AC代码

class Solution {
public:
    int ans = -0x3f3f3f3f;
    int dfs(TreeNode *t)
    {
        if (t == nullptr)
            return 0;
        int lw = dfs(t->left);
        int rw = dfs(t->right);
        if (lw >= 0 && rw >= 0) {
            ans = max(ans, lw + rw + t->val);
            return max(lw, rw) + t->val;
        }else if (lw >= 0 && rw <= 0)
        {
            ans = max(ans, lw + t->val);
            return lw + t->val;
        }else if (lw <= 0 && rw >= 0) {
            ans = max(ans, rw + t->val);
            return rw + t->val;
        }
        ans = max(ans, t->val);
        return t->val;
    }
    int maxPathSum(TreeNode *root)
    {
        dfs(root);
        return ans;
    }
};

标签:rw,return,val,int,lw,124,二叉树,ans,LeetCode
From: https://www.cnblogs.com/StarTwinkle/p/16916485.html

相关文章

  • [Leetcode Weekly Contest]320
    链接:LeetCode[Leetcode]2475.数组中不等三元组的数目给你一个下标从0开始的正整数数组nums。请你找出并统计满足下述条件的三元组(i,j,k)的数目:0<=i<j<......
  • leetcode35. 搜索插入位置(简单)
    题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:删除链表中的节点
    题目:有一个单链表的 head,我们想删除它其中的一个节点 node。给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。链表的所有值都是唯一的,并且保证给定......
  • leetcode724. 寻找数组的中心下标(数组)
    题目描述:给你一个整数数组nums,请计算数组的中心下标。数组中心下标是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最......
  • leetcode563. 二叉树的坡度。
    563.二叉树的坡度 二叉树大部分题目都可以用递归解决。为了满足一般性,即使题目初试没有的情况,子问题有的,也要考虑。递归就考虑当前的情况就行了,不要再考虑上一层或......
  • 【LeetCode】NO.217存在重复元素
    题目:给你一个整数数组 nums 。如果任一值在数组中出现至少两次,返回 true ;如果数组中每个元素互不相同,返回 false 。示例1:输入:nums=[1,2,3,1]输出:true示例2:......
  • leetcode814. 二叉树剪枝。如果想到使用递归还是很简单的
    814.二叉树剪枝有一点疑问,为什么不能先     if(!root->left&&!root->right&&root->val==0)returnnullptr;   ?classSolution{public:TreeNode......
  • leetcode875
    爱吃香蕉的珂珂Category Difficulty Likes Dislikesalgorithms Medium(48.45%) 450 -TagsCompanies珂珂喜欢吃香蕉。这里有n堆香蕉,第i堆中有piles[i]根香蕉。......
  • Leetcode多线程
    1114.按序打印​​原题链接​​classFoo{public:Foo(){m2.lock();m3.lock();}voidfirst(function<void()>printFirst){......
  • leetcode680-验证回文串 II。方法有缺陷,还需要继续琢磨
    680.验证回文串II这个做法就是利用双指针。一个指向第一个字符,一个指向最后一个字符。遇到两个指针指向的字符相同时,一个往前走,一个往后走。如果遇到不相同,那么就看看......