leetcode 814. 二叉树剪枝

即插即用系列(代码实践) | CVPR 2025 WPFormer:小波与原型增强Transformer——表面缺陷检测SOTA,专治弱缺陷与杂乱背景 摘要:本文提出了一种基于小波变换和原型增强的Transformer模型(WPFormer),用于像素级表面缺陷检测。该模型针对工业场景中微弱缺陷难以识别和杂乱背景干扰严重的问题,创新性地将小波变换引入Transformer的注意力机制,通过频域信息分离噪声与边缘特征,同时利用原型向量引导查询,实现了更精准的缺陷定位。核心模块包括小波增强交叉注意力(WCA)和原型引导交叉注意力(PCA),适用于工业缺陷检测、伪装目标检测和医学图像分割等任务。代码已开源,支持即插即用集成到现有框架中。 阅读详情

题目:

给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。

返回移除了所有不包含 1 的子树的原二叉树。

( 节点 X 的子树为 X 本身,以及所有 X 的后代。)

示例1:
输入: [1,null,0,0,1]
输出: [1,null,0,null,1]
 
解释: 
只有红色节点满足条件“所有不包含 1 的子树”。
右图为返回的答案。


来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-pruning
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

 后续遍历,递归左右子树。剪掉叶子节点且值为0的节点。

代码:

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {TreeNode}
 */
var pruneTree = function(root) {
    if(root==null){
        return null;
    }
    root.left = pruneTree(root.left);
    root.right = pruneTree(root.right);
    if(!root.left && !root.right && root.val === 0){
        return null;
    }else{
        return root;
    }
};

 

visio安装包 Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。 立即下载

相关推荐

visual studio 2017编译Triangle库遇到的问题和解决办法

这段时间因为一个项目需要使用到Triangle这个三角剖分工具,需要在windows环境下进行对源码编译,中间踩了很多坑,特此记录下。 1、下载 下载链接是下边这个,需要翻墙 http://www.cs.cmu.edu/~quake/triangle.html 2、编译。。超。。。级。。。麻。。。烦。。。 在ubutu下安装一切顺利,完全没遇到什么麻烦,但是换到windows下就麻烦不断...

csubai07的博客 2439

leetcode:删除给定值的叶子节点

题目来源:力扣 题目描述: 给你一棵以 root 为根的二叉树和一个整数 target ,请你删除所有值为 target 的 叶子节点 。 注意,一旦删除值为 target 的叶子节点,它的父节点就可能变成叶子节点;如果新叶子节点的值恰好也是 target ,那么这个节点也应该被删除。 也就是说,你需要重复此过程直到不能继续删除。 审题: 由于删除的是叶子节点,且删除是自底向上的过程.因此考虑...

zhangxiaojiakele的博客 623

T-Box功能详解及应用

T - BOX,其全称为 Telematics Box,作为远程 / 车载通信模块,是一款集车身网络与无线通讯功能于一体的智能终端设备。它充当了多媒体车机与 TSP(汽车远程服务提供商)以及互联网之间的无线路由器角色,为用户创造了远程访问的可能。用户借助T - BOX能够对车辆配备的各个 ECU(电子控制单元)进行远程操控,包括远程启动或停止发动机开启或关闭空调天窗后备箱门车门,以及实现闪灯鸣笛等功能。

wgl110110的博客 5640

LeetCode 题解 | 1325. 删除给定值的叶子节点(自底向上递归 C++)

题目描述 原题链接 算法 (自底向上 递归) O(n)O(n)O(n) 二叉树删除结点和链表删除结点是类似的,都是找到前驱结点,例如要删除root的左子树,只需root->left = NULL 我们需要删除所有值为 target 的叶子节点,那么我们的操作顺序应当从二叉树的叶子节点开始,逐步向上直到二叉树的根为止 常见的二叉树遍历中,后序遍历是先遍历完所有子结点之后再遍历根结点,符合题...

捡起一束光的博客 650

win11 使用 QEMU 配置龙芯 3A5000 虚拟环境

win11 使用 QEMU 配置龙芯 3A5000 虚拟环境

一朵花开的时间 6155

advanced installer 打包Flutter的Windows程序安装包(基本打包、开机自启、定时自动检测升级、包含卸载程序)

advanced installer 打包Flutter的Windows程序安装包(基本打包、开机自启、定时自动检测升级、包含卸载程序)

qq_45634989的博客 2878

leetcode【中等】1325、删除给定值的叶子节点

思路:递归 左右两个节点遍历完了才考虑中间节点,即后序遍历(左右中) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def remo.

qq_40707462的博客 163

Ansys Lumerical FDTD仿真加速策略与高性能硬件选型指南

本文深入探讨了Ansys Lumerical FDTD仿真的核心加速策略,涵盖算法优化与硬件选型两大维度。通过合理运用非均匀网格、对称边界条件等算法技巧,并精准匹配CPU/GPU计算资源与高性能硬件配置,可显著提升仿真效率,将计算时间从数天缩短至数小时。

a0b1c2d3的专栏 610

Leetcode(面试题 02 03)--删除中间节点

文章目录题目题解(Java) 题目 面试题 02.03. 删除中间节点 实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。 示例: 输入:单向链表a->b->c->d->e->f中的节点c 结果:不返回任何数据,但该链表变为a->b->d->e->f 题解(Java) 本题的难点之处在于要删除中间的节点,但只给了当前的节点,却没有给之前的节点,又因为是单向链表,因此无法逆向寻找当前节点的前一个节点,所以只能删

叶卡捷琳堡的博客 332

TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手

文章目录TCP介绍三次握手四次挥手滑动窗口拥塞避免算法 TCP介绍 三次握手 四次挥手

热爱编程的菜鸟 1万+

195、大模型蒸馏与压缩:知识蒸馏与VLA模型轻量化

折腾完这一整套流程,最大的感悟是:知识蒸馏不是简单的模型压缩,而是知识迁移的工程艺术。每一步都有坑,每个参数都可能影响最终性能。给后来者的建议是:先别急着上蒸馏,把teacher模型的推理延迟和显存占用测清楚,确定瓶颈在哪里——是计算量太大还是内存带宽不够,这决定了你该用蒸馏还是量化还是剪枝。蒸馏训练时一定要监控每一层的特征对齐loss,别只看总loss。如果某一层的对齐loss特别高,说明student在这一层学歪了,需要调整该层的损失权重或者增加该层的投影头容量。

sundong_81的博客 112

递归-二叉树中的剪枝-814.二叉树剪枝-力扣(LeetCode)

个人主页 :1白天的黑夜1-优快云博客专栏:力扣刷题录_1白天的黑夜1的博客-优快云博客、企鹅程序员:Linux 系统与网络编程_1白天的黑夜1的博客-优快云博客目录一、题目解析二、算法原理解法:递归1、重复的子问题--设计函数头2、只关心某一个子问题做什么--设计函数体3、递归出口细节:根据上面的分析结合自己的思路,先去尝试编写代码,多动手敲代码才能有效提高自己的代码水平。题目链接如下:814. 二叉树剪枝 - 力扣(LeetCode)三、代码示例四、递归展开图看到最后,如果对您有所帮助,还请点赞、

black_bear_white的博客 851

通信算法之249: DJI波形物理层

D-J-I的Lightbridge波形、Ocusync1波形、Ocusync2波形、Ocusync3波形,

leegang12的专栏 1440

Leetcode 814.二叉树剪枝(Binary Tree Pruning)

Leetcode 814.二叉树剪枝 1 题目描述(Leetcode题目链接)   给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。返回移除了所有不包含 1 的子树的原二叉树。( 节点 X 的子树为 X 本身,以及所有 X 的后代。) 输入: [1,0,1,0,0,0,1] 输出: [1,null,1,null,1] 2 题解   本题的意思就是如果一个节点的某个子树...

qq_39378221的博客 272

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Leetcode 814. 二叉树剪枝 C++

Leetcode 814. 二叉树剪枝 题目 给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。 返回移除了所有不包含 1 的子树的原二叉树。 ( 节点 X 的子树为 X 本身,以及所有 X 的后代。) 测试样例 示例1: 输入: [1,null,0,0,1] 输出: [1,null,0,null,1] 解释: 只有红色节点满足条件“所有不包含 1 的子树”。 右图为返回的答案。 示例2: 输入: [1,0,1,0,0,0,1] 输出: [1,null,1,null,1] 示

weixin_43750513的博客 368

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

二叉树剪枝_LeetCode:二叉树剪枝【814】

LeetCode:二叉树剪枝【814】题目描述给定二叉树根结点root,此外树的每个结点的值要么是 0,要么是 1。返回移除了所有不包含 1 的子树的原二叉树。( 节点 X 的子树为 X 本身,以及所有 X 的后代。)示例1:输入: [1,null,0,0,1]输出: [1,null,0,null,1]解释:只有红色节点满足条件“所有不包含 1 的子树”。右图为返回的答案。示例2:输入: [1...

weixin_33398033的博客 266

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LeetCode814算题第15天二叉树系列值《814 二叉树剪枝》

LeetCode814 二叉树剪枝 剪枝:剪枝顾名思义就是对一棵树进行修修剪剪,现实中我们对树进行修剪的目的是为了让其更好看,而在程序中对二叉树进行操作也是如此的,在程序中所谓的“好看”即是可以减少算法的时间复杂度。剪枝好像在决策树,机器学习过度拟合等领域都有用到,但是我并不了解剪枝在真正场景中的使用,仅仅只是在做题的角度上有所了解(害)。 题目描述 给定二叉树根节点root,此外树的每个结点的值要么是 0,要么是 1. 返回移除所有不包含1的子树的原二叉树 节点x的子树包含节点x本身和所有x的后代

weixin_44184990的博客 175

【力扣814】二叉树剪枝

父节点收到左右孩子的标志以后,若某个孩子所在的子树不含1,则将这一路设置为nullptr,再检查自己的val是否为1,若不为1,则给自己的父节点返回不含1的标志,否则告诉自己的父节点自己有1,此时这个节点的左右孩子中不含1的子树已经设置为nullptr,达到了一种传递的效果。注意节点的val是0或1的区别:在左右子树都不包含1的情况下,若父节点不为1,则一起删除,否则保留父节点。父节点同样给自己的父节点返回一个类似的标志,这个操作对所有节点都是一样的;左右子树都为0,自己为0,返回nullptr √。

weixin_63567927的博客 223

​LeetCode 814. 二叉树剪枝​

从最底下单个的0节点开始,是一个自底向上的过程,直到遇见非零节点无法继续剪枝为止。思路:dfs后序遍历,返回空指针赋值给子树实现剪枝。

qq_60392621的博客 296

leetcode814. 二叉树剪枝(java)

递归完成后,当这三个条件:左子树为空,右子树为空,当前节点的值为 0,同时满足时,才表示以当前节点为根的原二叉树的所有节点都为 0,需要将这棵子树移除,返回空。输入:root = [1,1,0,1,1,0,1,0]输入:root = [1,0,1,0,0,0,1]输入:root = [1,null,0,0,1]返回移除了所有不包含 1 的子树的原二叉树。输出:[1,1,0,1,1,null,1]输出:[1,null,0,null,1]输出:[1,null,1,null,1]来源:力扣(LeetCode)

SP_1024的博客 573

leetcode 814. Binary Tree Pruning | 814. 二叉树剪枝(Java)

题目 https://leetcode.com/problems/binary-tree-pruning/ 题解 思路很简单,看草稿: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val

寒泉 4万+

LeetCode 814. 二叉树剪枝

一开始没啥思路,感觉要写搜索,后来想起来数据结构期末考好像有类似的,应该是用递归很容易写,然后确实很容易写,找准递归边界就好了,也确实很容易找。链接https//leetcode.cn/problems/binary-tree-pruning。给你二叉树的根结点root,此外树的每个结点的值要么是0,要么是1。节点node的子树为node本身加上所有node的后代。返回移除了所有不包含1的子树的原二叉树。来源力扣(LeetCode)...

weixin_51140375的博客 281

814.力扣LeetCode_二叉树剪枝

本文介绍了用递归法修剪二叉树的算法实现。该算法采用后序遍历方式,先递归处理左右子树,再判断当前节点是否需要删除。关键点在于:1)当节点是叶子节点且值为0时,将其删除并释放内存;2)通过返回值更新父节点的指针,确保删除操作能正确传播。算法时间复杂度为O(n),空间复杂度为O(h),其中n为节点数,h为树的高度。注释详细解释了递归过程、终止条件和指针更新机制,突出了后序遍历在处理子树删除问题上的优势。

2401_82472941的博客 240

(Java)leetcode-814 Binary Tree Pruning(二叉树剪枝)

后序遍历 自下而上的解法

不思量 370

leetcode 814 二叉树剪枝

可以采用的方法来实现这个问题。

2301_80296866的博客 510

LeetCode-814-二叉树剪枝

LeetCode-814-二叉树剪枝

weixin_44939170的博客 130
上一篇: leetcode 167. 两数之和 II - 输入有序数组
下一篇: leetcode 1302. 层数最深叶子节点的和
yuanyuan_HTML
博客等级 码龄10年 4粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值