LeetCode 1080. 根到叶路径上的不足节点(递归)
1. 题目
给定一棵二叉树的根 root,请你考虑它所有 从根到叶的路径:从根到任何叶的路径。(所谓一个叶子节点,就是一个没有子节点的节点)
假如通过节点 node 的每种可能的 “根-叶” 路径上值的总和全都小于给定的 limit,则该节点被称之为「不足节点」,需要被删除。
请你删除所有不足节点,并返回生成的二叉树的根。
示例 1:
输入:root = [1,2,3,4,-99,-99,7,8,9,-99,-99,12,13,-99,14], limit = 1
输出:[1,2,3,4,null,null,7,8,9,null,14]
示例 2:
输入:root = [5,4,8,11,null,17,4,7,1,null,null,5,3], limit = 22
输出:[5,4,8,11,null,17,4,7,null,null,null,5]
示例 3:
输入:root = [5,-6,-6], limit = 0
输出:[]
提示:
给定的树有 1 到 5000 个节点
-10^5 <= node.val <= 10^5
-10^9 <= limit <= 10^9
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/insufficient-nodes-in-root-to-leaf-paths
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
class Solution {int sum = 0;//全局变量
public:TreeNode* sufficientSubset(TreeNode* root, int limit) {if(!root)return NULL;sum += root->val;//加入路径sumif(!root->left && !root->right)//叶子节点{if(sum < limit)//需要删除节点{sum -= root->val;return NULL;//一会父节点left或right指向nullptr}else//不删{sum -= root->val;return root;//原封不动,返回该节点}}else //非叶子节点,继续往下+{root->left = sufficientSubset(root->left, limit);root->right = sufficientSubset(root->right, limit);//左右都处理完了sum -= root->val;//当前节点要return了,减去它的值if(!root->left && !root->right)//左右至少有一个被删了,且现在没有子节点了return NULL;//它自己也需要被删elsereturn root;}}
};
LeetCode 1080. 根到叶路径上的不足节点(递归)相关推荐
- 叶节点到根节点的路径_所有根到叶路径
叶节点到根节点的路径 Problem statement: 问题陈述: Given a Binary Tree of size N, write a program that prints all t ...
- 3007基于二叉链表的二叉树叶子结点到根结点的路径的求解(附DFS在树里的应用分析,思路详解)
以下代码用到的前置知识:DFS算法 可以看这个视频~只用看这个就能懂了~ DFS深搜解决迷宫问题(原理分析+代码实现)_哔哩哔哩_bilibilihttps://www.bilibili.com/vi ...
- LeetCode 1022. 从根到叶的二进制数之和(递归)
1. 题目 给出一棵二叉树,其上每个结点的值都是 0 或 1 .每一条从根到叶的路径都代表一个从最高有效位开始的二进制数.例如,如果路径为 0 -> 1 -> 1 -> 0 -> ...
- Leetcode 1022:从根到叶的二进制数之和(超详细的解法!!!)
给出一棵二叉树,其上每个结点的值都是 0 或 1 .每一条从根到叶的路径都代表一个从最高有效位开始的二进制数.例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么 ...
- 【练习】树(Tree, UVa 548)给一棵点带权(权值各不相同)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小。
给一棵点带权(权值各不相同,都是小于10000的正整数)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小.如果有多解,该叶子本身的权应尽量小.输入中每两行表示一棵树,其中第一行为中序遍 ...
- C语言求一棵二叉树所有根到叶的路径(附完整源码)
C语言求一棵二叉树所有根到叶的路径 C语言求一棵二叉树所有根到叶的路径完整源码(定义,实现,main函数测试) C语言求一棵二叉树所有根到叶的路径完整源码(定义,实现,main函数测试) #inclu ...
- 【宫水三叶的刷题日记】1022. 从根到叶的二进制数之和
题目描述 这是 LeetCode 上的 1022. 从根到叶的二进制数之和 ,难度为 简单. Tag : 「DFS」.「BFS」.「二叉树」.「树的遍历」 给出一棵二叉树,其上每个结点的值都是 或 ...
- python列表表示二叉树_python-产生二叉树的所有从根到叶的分支
抱歉,这是一个常见问题,但是我没有针对我的特定问题找到合适的答案.我正在尝试实现一种walk方法,该方法将二叉树从其根节点移动到其每个叶节点,并在到达叶节点时产生从根到叶的路径.例如,遍历由以下表示的 ...
- leetcode算法题--三角形最小路径和
原题链接:https://leetcode-cn.com/problems/triangle/ 动态规划 dp[i][j]表示根结点到结点(i,j)的路径上的最小和 状态转移 dp[i][j]=min ...
最新文章
- linux驱动:TI+DM8127+GPIO(三)之omap_hwmod中添加GPIO资源
- 项目怎么查服务器,服务器查询项目标签
- Linux shell程序一
- SQL Server 数据库的统计查询
- 深入react技术栈(10):受控组件和非受控组件
- teleport 组件的作用_人脸识别综述! 覆盖人脸检测,预处理和特征表示三大核心组件!...
- 猜算式,四个两位数字不可以重复
- PyTorch并行与分布式(一)概述
- 如何在 Mac 上的程序坞中使用文件夹?
- Oracle递归查询所有树结构,并确定其中的一条分支
- SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据...
- php中dump是什么文件怎么打开,Win8/Win10 dump文件怎么打开?dump文件分析工具下载及使用教程...
- js自动生成html报表,JavaScript实现动态生成表格
- android 飞行模式 配置 wifi可用,飞行模式下使用WiFi教程
- 京东商品数据分析,教你一键分析数据
- Python 多线程 threading.Thread 同时最多有 n 个线程
- adb基本操作及环境配置
- 数学分析、实变函数与泛函分析
- 2019年美国计算机科学排名,最新!2019年USNews美国大学计算机专业排名
- 启动注销服务器,window server 2012系统服务器桌面重启关机注销的几种方法