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. 根到叶路径上的不足节点(递归)相关推荐

  1. 叶节点到根节点的路径_所有根到叶路径

    叶节点到根节点的路径 Problem statement: 问题陈述: Given a Binary Tree of size N, write a program that prints all t ...

  2. 3007基于二叉链表的二叉树叶子结点到根结点的路径的求解(附DFS在树里的应用分析,思路详解)

    以下代码用到的前置知识:DFS算法 可以看这个视频~只用看这个就能懂了~ DFS深搜解决迷宫问题(原理分析+代码实现)_哔哩哔哩_bilibilihttps://www.bilibili.com/vi ...

  3. LeetCode 1022. 从根到叶的二进制数之和(递归)

    1. 题目 给出一棵二叉树,其上每个结点的值都是 0 或 1 .每一条从根到叶的路径都代表一个从最高有效位开始的二进制数.例如,如果路径为 0 -> 1 -> 1 -> 0 -> ...

  4. Leetcode 1022:从根到叶的二进制数之和(超详细的解法!!!)

    给出一棵二叉树,其上每个结点的值都是 0 或 1 .每一条从根到叶的路径都代表一个从最高有效位开始的二进制数.例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么 ...

  5. 【练习】树(Tree, UVa 548)给一棵点带权(权值各不相同)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小。

    给一棵点带权(权值各不相同,都是小于10000的正整数)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小.如果有多解,该叶子本身的权应尽量小.输入中每两行表示一棵树,其中第一行为中序遍 ...

  6. C语言求一棵二叉树所有根到叶的路径(附完整源码)

    C语言求一棵二叉树所有根到叶的路径 C语言求一棵二叉树所有根到叶的路径完整源码(定义,实现,main函数测试) C语言求一棵二叉树所有根到叶的路径完整源码(定义,实现,main函数测试) #inclu ...

  7. 【宫水三叶的刷题日记】1022. 从根到叶的二进制数之和

    题目描述 这是 LeetCode 上的 1022. 从根到叶的二进制数之和 ,难度为 简单. Tag : 「DFS」.「BFS」.「二叉树」.「树的遍历」 给出一棵二叉树,其上每个结点的值都是   或 ...

  8. python列表表示二叉树_python-产生二叉树的所有从根到叶的分支

    抱歉,这是一个常见问题,但是我没有针对我的特定问题找到合适的答案.我正在尝试实现一种walk方法,该方法将二叉树从其根节点移动到其每个叶节点,并在到达叶节点时产生从根到叶的路径.例如,遍历由以下表示的 ...

  9. leetcode算法题--三角形最小路径和

    原题链接:https://leetcode-cn.com/problems/triangle/ 动态规划 dp[i][j]表示根结点到结点(i,j)的路径上的最小和 状态转移 dp[i][j]=min ...

最新文章

  1. linux驱动:TI+DM8127+GPIO(三)之omap_hwmod中添加GPIO资源
  2. 项目怎么查服务器,服务器查询项目标签
  3. Linux shell程序一
  4. SQL Server 数据库的统计查询
  5. 深入react技术栈(10):受控组件和非受控组件
  6. teleport 组件的作用_人脸识别综述! 覆盖人脸检测,预处理和特征表示三大核心组件!...
  7. 猜算式,四个两位数字不可以重复
  8. PyTorch并行与分布式(一)概述
  9. 如何在 Mac 上的程序坞中使用文件夹?
  10. Oracle递归查询所有树结构,并确定其中的一条分支
  11. SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据...
  12. php中dump是什么文件怎么打开,Win8/Win10 dump文件怎么打开?dump文件分析工具下载及使用教程...
  13. js自动生成html报表,JavaScript实现动态生成表格
  14. android 飞行模式 配置 wifi可用,飞行模式下使用WiFi教程
  15. 京东商品数据分析,教你一键分析数据
  16. Python 多线程 threading.Thread 同时最多有 n 个线程
  17. adb基本操作及环境配置
  18. 数学分析、实变函数与泛函分析
  19. 2019年美国计算机科学排名,最新!2019年USNews美国大学计算机专业排名
  20. 启动注销服务器,window server 2012系统服务器桌面重启关机注销的几种方法

热门文章

  1. GD32 使用stm32 固件库
  2. 双目视觉几何框架详解(玉米专栏8篇汇总)
  3. android java 调试快捷键_Android Studio 代码页跳界面 /java和XML快速切换技巧
  4. GNU C 、ANSI C、标准C、标准c++区别和联系
  5. 结构体的一些形式理解
  6. 【作品】超级玛丽射击版
  7. 十六进制转化为十进制
  8. EasyUI_datagrid
  9. zipline-benchmarks.py文件改写
  10. [luoguP2760] 科技庄园(背包DP)