LeetCode题目-124

首页 编程分享 LEET_CODE 正文

leetCode 转载 编程分享 2024-08-09 05:51:21

简介 LeetCode题目-124


✏Leetcode基础刷题之(124. Binary Tree Maximum Path Sum)


✏描述

给定一棵非空二叉树,求最大路径和。对于这个问题,可以从任意的节点出发,可以不经过根节点,但是至少要经过一个结点。


✏题目实例

✏题目分析

递归,每一次都需要判断左右子树,像例子2根节点为负数的情况,我们当然要舍弃负数,因为无论什么时候正数加负数的值都会变小。所以对于左右子节点,取0和当前结点值的最大值,定义一个全局变量,每次更新全局最大值,也就是把它和left+right+当前结点值比较大小,更新全局最大路径和。还有一点要注意的是,定义初始值的时候并不能直接初始化为0,因为如果二叉树只有一个负数的根节点,题目要求的是至少要经过一个节点,那么结果可想而知。

  /**
     * @param TreeNode $root
     * @return Integer
     */
    function maxPathSum($root) {
        $res=$root->val;
        $this->helper($root,$res);
        return $res;
    }
    
    function helper($root,&$res)
    {
        if(!$root)  return 0;
        $left=max($this->helper($root->left,$res),0);
        $right=max($this->helper($root->right,$res),0);
        $res=max($res,$left+$right+$root->val);
        return max($left,$right)+$root->val;
    }

转载链接:https://leetcode.cn/


Tags:


本篇评论 —— 揽流光,涤眉霜,清露烈酒一口话苍茫。


    声明:参照站内规则,不文明言论将会删除,谢谢合作。


      最新评论




ABOUT ME

Blogger:袅袅牧童 | Arkin

Ido:PHP攻城狮

WeChat:nnmutong

Email:nnmutong@icloud.com

标签云