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

124. 二叉树中的最大路径和

时间:2023-09-21 11:23:50浏览次数:40  
标签:val int route 路径 124 二叉树 root 节点

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。

路径和 是路径中各节点值的总和。

给你一个二叉树的根节点 root ,返回其 最大路径和 。

示例 1:

输入:root = [1,2,3]
输出:6
解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6

> 代码


class Solution {
public:
    //dfs 返回值以root节点为起点的一条最大路径值
    int dfs(TreeNode* root,int& route){
        if(!root)   return 0;
        int left = dfs(root->left,route);
        int right = dfs(root->right,route);
        //最大路径和 = { 左子树的最大路径和,右子树的最大路径和、经过根节点的最大路径和}
        route = max(route,max(max(root->val,left + right + root->val),max(root->val + left,root->val + right)));
        return max(max(left,right) + root->val,root->val);
    }
    int maxPathSum(TreeNode* root) {
        int route = INT_MIN;
        int r = dfs(root,route);
        return route;
    }
};

标签:val,int,route,路径,124,二叉树,root,节点
From: https://www.cnblogs.com/lihaoxiang/p/17719462.html

相关文章

  • centos中自带java的路径配置
    centos自带的java,可以直接运行java,但不知道是怎么访问到的,所以就查了一下[root@aaa]#java-versionopenjdkversion"1.8.0_262"OpenJDKRuntimeEnvironment(build1.8.0_262-b10)OpenJDK64-BitServerVM(build25.262-b10,mixedmode)查看版本号,可以看到能访问ja......
  • win10 uwp 简单制作一个 Path 路径绘制的图标按钮
    本文告诉大家在UWP或WinUI3里面如何简单制作一个由Path几何路径图形绘制的图标按钮先在资源里面定义按钮的样式,重写Template属性,通过在Template里面放入Path绑定Data到内容从而实现让Path显示集合路径图形,代码如下<Stylex:Key="Style.TitlebarButton"......
  • 437. 路径总和 III
    给定一个二叉树的根节点root,和一个整数targetSum,求该二叉树里节点值之和等于targetSum的路径的数目。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例1:输入:root=[10,5,-3,3,2,null,11,3,-2,null,1],targetSum......
  • dedebiz内容页面获取当前页面路径的标签
    dedebiz获取当前页面路径的标签,仅在内容页使用,栏目页没有效果的。{dede:fieldname='arcurl'/}在栏目页想获取当前栏目的路径及名称的话,就要用下面这个标签。{dede:type}<ahref="[field:typelink/]">[field:typename/]</a>{/dede:type}获取网站所有栏目名称及路径列......
  • linux中正则表达式仅保留绝对路径的目录
     001、方法1[root@pc1test2]#lsa.txt[root@pc1test2]#cata.txt##测试文件/home/test2/a.txt[root@pc1test2]#sed-r's/(\/.*\/).*/\1/'a.txt##仅保留路径/home/test2/ ......
  • 二叉树
    二叉树搜索二叉树:左边比根小,右边比根大;子树也满足这个特征。搜索二叉树还有一个特征:去走一个中序是一个升序的状态。所以搜索二叉树可以叫做二叉排序树或二叉查找树。模板不喜欢用T了,因为喜欢用K(关键字)。推荐一般用BinarySearchTree,二叉搜索树,不要用SearchTreeBinary,因为简写出......
  • 《剑指Offer》-34-二叉树中和为某一值的路径
    思路要求是从根节点开始的路径,这会比从任意节点开始的路径简单很多思路是从根节点开始遍历每一条路径,如果和没有达到目标值就继续向下遍历大于就回退,等于就返回到结果集中,可以看到这是一个回溯动作实际过程中,首先不管是等于还是大于,回退pop()操作都要执行,这样才不会影响到后......
  • java代码中 两种路径符号的写法
    java代码中两种路径符号的写法Stringpath="D:\\新建文件夹\\2.png"; Filefile=newFile(path); System.out.println(file.exists()); Stringpath1="D:/新建文件夹/2.png"; Filefile1=newFile(path); System.out.println(file1.getAbsolutePath()); Sys......
  • 114. 二叉树展开为链表
    给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。展开后的单链表应该与二叉树先序遍历顺序相同。示例1:输入:root=[1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,......
  • 剑指Offer面试题7:重建二叉树
    一、题目给定节点数为n的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。提示:1.vin.length== pre.length2.pre和vin 均无重复元素3.vin出现的元素均出现在 ......