NC6 二叉树的最大路径和
题目表述:给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少。这个路径的开始节点和结束节点可以是二叉树中的任意节点。
解题思路:首先分析每一个节点可能存在地情况。一共分为四种。
第一种是左右两个结点都是负数,返回结点本身。
第二种情况是保留节点本身和左节点。
第三种情况是保留节点本身和右节点。
第四种情况是同时保留节点本身和左右结点。
设置一个最小整数进行判断,同时递归保留所有可能的最大路径。
int maxPathSum(TreeNode* root) {// write code hereif(!root) return 0;int maxSum = INT_MIN;//这里的初始值必须设为一个不可能达到的负数 最大值有可能为负的情况maxlu(root,maxSum);//递归遍历所有结点的同时时刻更新可能的最大路径值return maxSum;}int maxlu(TreeNode *root, int& maxsum){if(!root) return 0;int Lu = maxlu(root->left,maxsum );int Ru = maxlu(root->right, maxsum);if(root->val>maxsum)maxsum = root->val;if((Lu+Ru+root->val)>maxsum)maxsum = Lu+Ru+root->val;int curVal = Lu > Ru ? Lu + root->val : Ru + root->val;if(curVal>maxsum) maxsum = curVal;if(curVal > 0) return curVal;else return 0;
NC6 二叉树的最大路径和相关推荐
- 牛客题霸 NC6 二叉树的最大路径和
https://www.nowcoder.com/practice/da785ea0f64b442488c125b441a4ba4a 解决方案 Go var res int = -1e10func m ...
- NC6 二叉树中的最大路径和
这里写自定义目录标题 题目描述 思路 递归 题目描述 寻找二叉树中从任意节点开始的最大不重复路径和 示例: 输入:{1,2,3} 输出:6 原题链接:NC6 二叉树中的最大路径和 思路 拿到这道题第一 ...
- mysql递归查询所有上下节点_非递归打印二叉树的所有路径,保存父节点和孩子节点到底有啥差别...
题目解读 题目要求输出二叉树的所有路径(字符串形式),乍一看很简单,不就是二叉树的遍历嘛!其实不然,首先,我们用非递归的方式(C++)解决这道题(递归在产品代码中是不允许使用的,其次定位 bug 的时 ...
- 257. 二叉树的所有路径 golang
257. 二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1/ \ 2 3\5 输出: ["1->2-&g ...
- Suzy找到实习了吗Day 17 | 二叉树进行中:110. 平衡二叉树,257 二叉树的所有路径,404. 左叶子之和
110. 平衡二叉树 题目 判断一颗二叉树是否是平和二叉树:一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 . 我的错误trial 我通过写了一个函数(后序遍历 ...
- 【leetcode-DFS】求根节点到叶节点数字之和/二叉树的最大路径和/路径总和/左叶子之和/树的直径
文章目录 求根节点到叶节点数字之和 深度优先搜索 广度优先搜索 二叉树的最大路径和 DFS 路径总和1 深度优先搜索 广度优先搜索 路径总和2 回溯法 广度优先搜索 左叶子之和 递归 DFS 树的直径 ...
- DS树--二叉树之最大路径
题目描述 给定一颗二叉树的逻辑结构(先序遍历的结果,空树用字符'0'表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构 二叉树的每个结点都有一个权值,从根结点到每个叶子结点将形成一条路径, ...
- 算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和
算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和 平衡二叉树 110. 平衡二叉树 - 力扣(LeetCode) 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高 ...
- 57. Leetcode 257. 二叉树的所有路径 (二叉树-二叉树路径和)
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径.叶子节点 是指没有子节点的节点.示例 1: 输入:root = [1,2,3,null,5] 输出:[" ...
最新文章
- Java程序流程控制(顺序结构、分支结构、循环结构、if-else、switch-case、for、while、do-while、break、continue、return)
- 开发日记-20190427
- Direct Byte Buffer的操作
- hive中分组取前N个值的实现
- 解决ubuntu和windows之间无法复制粘贴问题
- C语言版:二叉树叶子结点和非叶子结点求法
- 动态数据中心:微软私有云解决方案
- 讲解NPN与PNP三极管做开关管使用方法与计算
- 编译原理支配树部分名词介绍
- Win10 OpenCV编译安装CUDA版本
- Markdown/LaTeX数学符号、公式大全(一)
- 导带电子浓度和价带空穴浓度
- 计算机专业-找工作相关经验
- 实现球体碰撞,使用这个库就够了
- SAP之Suse For SAP 12 sp5安装教程(超详细)
- LSTM模型在测试集上的输出全都是一样的怎么办
- 水平集详解与代码分析一
- 高中信息技术计算机操作,高中信息技术《操作数据库》教案
- Linux下防御ARP欺骗
- C++实现数独,世界最难论秒出
热门文章
- R语言使用crossprod函数和tcrossprod函数计算矩阵matrix交叉积(Matrix Cross Product)、crossprod函数、tcrossprod函数计算矩阵和向量的交叉积
- 网页自动刷新JavaScript脚本
- 插入排序和希维尔排序算法的实现
- 叮咚音箱 服务器挂了吗 无法注册,叮咚音箱连不上网怎么解决
- 七年级下册计算机考试题,七年级下册信息技术复习题
- python pyh模块下载_1Python生成高质量Html文件:Pyh模块+Bootstrap框架
- 对话庄表伟老师-文字实录
- 家乡自有黄金屋 快手新乡村网红的“返乡经济学”
- 浅析担保机构的经营和风险控制
- 巨头围攻之下,独立云厂商前途何在?