当前位置: 首页 > news >正文

「递归算法」:二叉树剪枝

一、题目

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

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

节点 node 的子树为 node 本身加上所有 node 的后代。

示例 1:

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

示例 2:

输入:root = [1,0,1,0,0,0,1]
输出:[1,null,1,null,1]

示例 3:

输入:root = [1,1,0,1,1,0,1,0]
输出:[1,1,0,1,1,null,1]

提示:

  • 树中节点的数目在范围 [1, 200] 内
  • Node.val 为 0 或 1

二、思路解析

忽然发现讲了好几篇二叉树的例题,其中涉及到的 “剪枝” 操作我都是一笔带过。这不,今天我找了一道剪枝的题目,我们一块品味一番。

我们先从名字上理解一下,所谓剪枝,就是把树木上的低质量树枝剪掉,以促进整颗树木更好地生长。

而我们今天所讲的剪枝,其实大体也是类似意思,只不过是把 “值为空” 的节点删去。

理解了这些,相信这道题的答案已经浮出水面了,下面是详细代码👇

三、完整代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode pruneTree(TreeNode root) {if(root == null){return null;}root.left = pruneTree(root.left);root.right = pruneTree(root.right);if(root.left == null && root.right == null && root.val == 0){root = null;}return root;}
}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

http://www.lryc.cn/news/298486.html

相关文章:

  • Kafka下载(kafka和jdk、zookeeper、SpringBoot的版本对应关系)
  • 自然语言NLP
  • 容器库(5)-std::list
  • 配置VMware实现从服务器到虚拟机的一键启动脚本
  • 第5讲小程序微信用户登录实现
  • Kong 负载均衡
  • 基于Chrome插件的Chatgpt对话无损导出markdown格式(Typora完美显示)
  • react函数组件中使用context
  • 【MATLAB源码-第137期】基于matlab的NOMA系统和OFDMA系统对比仿真。
  • 【FPGA Verilog】各种加法器Verilog
  • 【MySQL】-21 MySQL综合-7(MySQL主键+MySQL外检约束+MySQL唯一约束+MySQL检查约束)
  • 【大厂AI课学习笔记】【1.6 人工智能基础知识】(3)神经网络
  • 指针的基本含义及其用法
  • 黄金交易策略(Nerve Nnife.mql4):趋势做单
  • HiveSQL——条件判断语句嵌套windows子句的应用
  • ClickHouse--01--简介
  • 【Django-ninja】在django ninja中处理异常
  • 【并发编程】原子累加器
  • Java 基于微信小程序的电子商城购物系统
  • Git Push -f 命令详解
  • 【LeetCode每日一题】前缀和的例题1248. 统计「优美子数组」974. 和可被 K 整除的子数组
  • 备战蓝桥杯---数学基础3
  • [算法学习] 逆元与欧拉降幂
  • 【Chrono Engine学习总结】4-vehicle-4.1-vehicle的基本概念
  • 腾讯云4核8G服务器多少钱?2024精准报价
  • 汽车出租管理系统
  • 使用SM4国密加密算法对Spring Boot项目数据库连接信息以及yaml文件配置属性进行加密配置(读取时自动解密)
  • 【LeetCode每日一题】二维前缀和基本概念与案例
  • 计算机网络——网络安全
  • SQl 注入 - 利用报错函数updatexml及extracevalue