【Java|golang】1080. 根到叶路径上的不足节点--dfs

news2024/10/6 4:10:21

给你二叉树的根节点 root 和一个整数 limit ,请你同时删除树中所有 不足节点 ,并返回最终二叉树的根节点。

假如通过节点 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 = [1,2,-3,-5,null,4,null], limit = -1
输出:[1,null,-3,4]

提示:

树中节点数目在范围 [1, 5000] 内
-105 <= Node.val <= 105
-109 <= limit <= 109

    public TreeNode sufficientSubset(TreeNode root, int limit) {
        dfs(root,limit,0);
        return root;
    }
    public TreeNode dfs(TreeNode root, int limit,int sum){
        if (root==null){
            return null;
        }
        sum+=root.val;
        if (root.left==null&&root.right==null){
            return sum<limit?null:root;
        }
        root.left=dfs(root.left,limit,sum);
        root.right=dfs(root.right,limit,sum);
        return root.left==null&&root.right==null?null:root;
    }

在这里插入图片描述

func sufficientSubset(root *TreeNode, limit int) *TreeNode  {
	return dfs(root,limit,0)
}
func dfs(root *TreeNode, limit, sum int) *TreeNode {
	if root == nil {
		return nil
	}
	sum += root.Val
	if root.Left == nil && root.Right == nil {
		if sum < limit {
			return nil
		}
		return root
	}
	root.Left = dfs(root.Left, limit, sum)
	root.Right = dfs(root.Right, limit, sum)
	if root.Left == nil && root.Right == nil {
		return nil
	}
	return root
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux基本指令(2)】几十条指令快速入手Linux/深入理解什么是指令

本文思维导图&#xff1a; 文章目录 Tips&#xff1a;7.man指令&#xff08;重要&#xff09;&#xff1a;echo指令和输出重定向&#xff0c;追加重定向&#xff0c;输入重定向 8、cp指令&#xff08;重要&#xff09;9.mv指令&#xff08;重要&#xff09;10.cat指令11.more指…

weblogic CVE 2017-10271

weblogic ip :192.168.27.128:7001 使用weblogicscan对目标进行探测 python3 WeblogicScan.py -u 192.168.27.128 -p 7001 扫到了不少洞&#xff0c;现在开搞2017-10271 漏洞原理 CVE-2017-10271漏洞主要是由WebLogic Server WLS组件远程命令执行漏洞&#xff0c;主要由wls-…

自动化如何做?爆肝整理企业自动化测试工具/框架选择实施,你要的都有...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

电容的电介吸收性质

电介质吸收 我们首先讨论电介质吸收&#xff0c; 也称为“浸润” &#xff0c; 有时也称为“电介质迟滞” &#xff0c; 这可能是我们了解最少而潜在破坏性最高的一种电容效应。 放电时&#xff0c; 多数电容都不愿意放弃之前所拥有的全部电荷。 图2 显示了这一效应。 电容在时…

科技云报道:穿行数字经济时代,数据如何找到“安全感”?

科技云报道原创。 数据作为数字经济时代的新型生产要素&#xff0c;正快速融入经济社会的方方面面&#xff0c;甚至常常被形容为“未来的石油”。 在数字经济时代&#xff0c;数据安全与数据流通同等重要。但随着我国数字经济驶入快车道&#xff0c;数据流动和安全发展的矛盾…

idea中关联Git

注意&#xff1a;未安装和配置Git软件&#xff0c;请先跳转到 Git宝典_没办法&#xff0c;我就是这么菜的博客-CSDN博客 idea关联git 关联git.exe 选择你的Version Control 下的Git 选择你的Git安装目录bin下的git.exe&#xff0c;点击ok 点击Test&#xff0c;显示版本号…

opencv文字识别

OpenCV&#xff08;开源计算机视觉库&#xff09;是一个用于实现计算机视觉和机器学习的开源库。它包含了许多预先训练的模型和算法&#xff0c;可以帮助开发者快速实现图像处理、对象检测和识别等功能。在文字识别方面&#xff0c;OpenCV也有一些实用的工具和方法。 要在OpenC…

【使用ChatGPT写思维导图】

内容目录 一、利用ChatGPT生成思维导图内容1. 打开ChatGPT&#xff1a;2. 输入需求&#xff1a;3. 复制&#xff1a; 二、制作生成思维导图1. 打开思维导图制作网站&#xff1a;2. 网页版下侧 - Try it out → - 粘贴Markdown内容&#xff0c;就会自动生成。3. 自行下载。 一、…

四川省信创联盟2023年第一次理事会顺利召开,MIAOYUN荣获“信创企业优秀奖”!

5月18日&#xff0c;四川省技术创新促进会信创工委会&#xff08;四川省信创产业联盟&#xff09;在成都市高新区新川科技园成功召开《2023年第一次理事单位&#xff08;扩大&#xff09;会议》&#xff0c;四川省技术创新促进会专家组杜纯文副组长、四川省技术创新促进会任渝英…

构建完善的帮助中心,降低企业客户服务成本

随着信息技术的发展和应用的普及&#xff0c;越来越多的企业已开始意识到&#xff0c;通过构建完善的帮助中心&#xff0c;可以有效地降低企业客户服务成本&#xff0c;提高客户满意度。一个完善的帮助中心不仅仅是企业用于回答客户问题的工具&#xff0c;更是客户自主获取和消…

vite + electron 构建前端桌面应用程序

文章目录 一、创建 vite 项目二、构建 Electron 项目三、打包 Electron 桌面程序四、项目地址 一、创建 vite 项目 npm npm create vitelatestyarn yarn create vite选择是否继续 Need to install the following packages:create-vite3.2.1 Ok to proceed? (y) y项目名称 P…

【IIS建站教程】windows本地搭建web服务,内网穿透发布公网访问

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 转载自远程源码文章&#xff1a;【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网…

【C++】STL——容器适配器priority_queue(优先级队列)详解 及 仿函数的介绍和使用

文章目录 1. priority_queue的介绍和使用1.1 priority_queue的介绍1.2 priority_queue的使用1.2.1 仿函数介绍1.2.2 在OJ中的使用&#xff1a;数组中的第K个最大元素思路1&#xff1a;排序思路2&#xff1a;priority_queue思路3&#xff1a;TOP-K思想 2. priority_queue的模拟实…

C++入门--缺省、函数重载、引用学习

1.缺省参数 1.1缺省参数概念 缺省参数是指在声明或定义函数时为函数的参数指定一个缺省值&#xff0c;如果在调用该函数的时候没有指定参数&#xff0c;函数会使用该参数的缺省值&#xff0c;否则使用指定的参数。 #include<iostream> using std::cout; using std::cin;…

Flutter2.x升级3.x版本遇到的问题及解决方案

项目原本使用的Flutter版本为2.5.3&#xff0c;现在要升级到3.0.5版本&#xff0c;结果升级完后项目直接编译不通过&#xff0c;报了一堆的错误&#xff0c;如果你也是这种情况&#xff0c;可以按我接下来讲的操作试一试&#xff0c;反正我就是这么解决问题的。 目录 1、升级G…

连锁管理系统有哪些功能?如何选择实用的连锁管理系统?

传统门店管理系统有很多弊端&#xff0c;各种销售数据不能实时同步、沟通效率低、分店管理困难&#xff0c;库存混乱...... 一套合适的连锁管理系统&#xff0c;能够有效解决多门店之间的管理沟通难题&#xff0c;总店可以随时随地使用手机掌控分店各种事项&#xff0c;多门店之…

云原生之深入解析Airbnb的动态Kubernetes集群扩缩容

一、前言 Airbnb 基础设施的一个重要作用是保证我们的云能够根据需求上升或下降进行自动扩缩容&#xff0c;我们每天的流量波动都非常大&#xff0c;需要依靠动态扩缩容来保证服务的正常运行。为了支持扩缩容&#xff0c;Airbnb 使用了 Kubernetes 编排系统&#xff0c;并且使…

三分钟上线你自己的Midjourney

文章尾部有demo 江湖惯例&#xff1a;先来一波感谢&#xff0c;感谢laf&#xff0c;让我们可以不使用魔法、免费接入Midjourney&#xff0c;不了解laf的请猛戳 Laf介绍 背景 laf官方最近发布了一个活动&#xff0c;活动链接&#xff0c;新手也可以接入哦&#xff01;废话不多…

优维低代码实践:页面编排优化与数据联调

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

NEEPU Sec 2023公开赛Reverse题目复现

文章目录 一.Base二.How to use python1.程序逻辑分析2.爆破flag[11]~flag[14]3.爆破sha14.sha256掩码爆破 三.IKUN检查器1.查看程序信息2.分析程序逻辑3.button1_conClick函数4.check1函数5.check2函数6.check3函数7.check4函数8.check5函数 四.junk code1.使用32位动态调试工…