C++二叉树剪枝
文章目录
- C++二叉树剪枝
- 题目链接
- 题目描述
- 解题思路
- 代码
- 复杂度分析
C++二叉树剪枝
题目链接
LCR 047. 二叉树剪枝 - 力扣(LeetCode)
题目描述
给定一个二叉树 根节点
root,树的每个节点的值要么是0,要么是1。请剪除该二叉树中所有节点的值为0的子树。节点
node的子树为node本身,以及所有node的后代。
解题思路
首先我们分为三步
①函数头
首先我们应该想到我们去递归解答这道题目,函数的参数非常好确认就是
TreeNode* root即可。函数的返回值:根据题目的意思我们要将那些全零的子树全部在树中删除,那么我们最好是返回一个
TreeNode*即可。②函数体
我们要实现的肯定是一个深度优先遍历
dfs,那么(1)
dfs(root->left);(2)
dfs(root->right);(3)
处理当前root③截止条件
当我们深度历到
root == nullptr为空的时候
代码
class Solution {
public:TreeNode* pruneTree(TreeNode* root) {if(root == nullptr)return nullptr;root->left = pruneTree(root->left);root->right = pruneTree(root->right);if(root->left == nullptr && root->right == nullptr && root->val == 0)root = nullptr;return root;}
}
复杂度分析
时间复杂度:
dfs时间复杂度为O(N);空间复杂度:
未使用额外的空间,空间复杂度为:O(1);
相关文章:
C++二叉树剪枝
文章目录 C二叉树剪枝题目链接题目描述解题思路代码复杂度分析 C二叉树剪枝 题目链接 LCR 047. 二叉树剪枝 - 力扣(LeetCode) 题目描述 给定一个二叉树 根节点 root ,树的每个节点的值要么是 0,要么是 1。请剪除该二叉树中所有节…...
ZooKeeper中节点的操作命令(查看、创建、删除节点)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
el-table多选表格 实现默认选中 删除选中列表取消勾选等联动效果
实现效果如下: 代码如下: <template><div><el-tableref"multipleTable":data"tableData"tooltip-effect"dark"style"width: 100%"selection-change"handleSelectionChange"><…...
预安装win11的电脑怎么退回正版win10?
对于新购的笔记本 通常来讲预装的系统是全新安装的,是没有之前Windows10系统文件的,无法回退。 可以打开设置-----系统----恢复-----看下是否有该选项。 ------------------------------------------------------------------------------- 若是在上述…...
MATLAB——多层小波的重构
%% 学习目标:多层小波的重构 %% 程序1 clear all; close all; load noissin.mat; xnoissin; [C,L]wavedec(x,3,db1); %小波多层分解 ywaverec(C,L,db1); %重构,必须小波类型一致 emax(abs(x-y)) %重构的误差 %% 程序2 clear all;…...
解锁高效创作艺术!AI助力文章生成与精美插图搭配完美融合
在当今这个信息爆炸的时代,高效创作文章已经成为了一种必备的技能。然而,创作一篇高质量的文章并插入精美插图,往往需要耗费大量的时间和精力。现在,随着AI技术的发展,我们迎来了一个全新的文章创作时代——利用AI高效…...
✔ ★【备战实习(面经+项目+算法)】 10.29学习
✔ ★【备战实习(面经项目算法)】 坚持完成每天必做如何找到好工作1. 科学的学习方法(专注!效率!记忆!心流!)2. 每天认真完成必做项,踏实学习技术 认真完成每天必做&…...
微服务-Ribbon负载均衡
文章目录 负载均衡原理流程原理源码分析负载均衡流程 负载均衡策略饥饿加载总结 负载均衡原理 流程 原理 LoadBalanced 标记RestTemplate发起的http请求要被Ribbon进行拦截和处理 源码分析 ctrlshiftN搜索LoadBalancerInterceptor,进入。发现实现了ClientHttpRequ…...
UC3845BD1R2G一款专门针对离线和 DC-DC 转换器应用 高性能电流模式PWM控制器
UC3845BD1R2G为高性能固定频率电流模式控制器。专门针对离线和 DC-DC 转换器应用而设计,提供了外部部件极少的成本高效方案。这些集成电路具有振荡器、温度补偿参考、高增益误差放大器、电流传感比较器和高电流图腾柱输出,适用于驱动功率 MOSFET。还包括…...
vivo自研AI大模型即将问世,智能手机行业加速迈向AI时代
当前,以大模型为代表的人工智能技术已发展为新一轮科技革命和产业变革的重要驱动力量,被视作推动经济社会发展的关键增长极。 AI大模型潮起,千行百业走向百舸争流的AI创新应用期,前沿信息技术向手机、PC、车机等消费级终端加速渗…...
探索JavaScript事件流:DOM中的神奇旅程
🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 引言 1. 事件流的发展流程 1.1 传统的DOM0级事件 1.2 DOM2级事件和addEventListener方法 1.3 W3C DOM3级…...
听GPT 讲Rust源代码--library/std(8)
题图来自Why is Rust programming language so popular?[1] File: rust/library/std/src/sys/sgx/abi/reloc.rs 在Rust源代码中,sgx/abi/reloc.rs文件的作用是定义了针对Intel Software Guard Extensions (SGX)的重定位相关结构和函数。 该文件中的Rela 结构定义了…...
Hbase基本使用,读写原理,性能优化学习
文章目录 HBase简介HBase定义HBase数据模型**HBase** **逻辑结构****HBase** **物理存储结构****HBase** **基本架构** HBase 入门**HBase** **安装部署****HBase** 配置文件**HBase** 启动停止**HBase** **访问页面****HBase** **高可用****HBase Shell****HBase API**HBaseCo…...
添加主仓库后报错error: remote upstream already exists.
可能的原因 远程名 upstream 已经被使用: 这通常意味着你在之前已经添加了一个名为 upstream 的远程仓库。 解决方案 检查现有的远程仓库: 运行 git remote -v 来查看所有配置的远程仓库。这个命令会列出所有远程仓库的URL,你可以检查是否已…...
香港服务器如何做负载均衡?
在现代互联网时代,随着网站访问量的不断增加,服务器的负载也越来越重。为了提高网站的性能和可用性,负载均衡成为了一种常见的解决方案。 什么是负载均衡? 负载均衡是一种技术解决方案,用于在多个服务器之间分配负载&#…...
前端 :用HTML , CSS ,JS 做一个秒表
1.HTML: <body><div id "content"><div id "top"><div id"time">00:00:000</div></div><div id "bottom"><div id "btn_start">开始</div><div …...
BIOS MBR UEFI GPT详解
先来看下名词 启动方式: BIOS:Basic Input Output System,中文名称"基本输入输出系统"。 UEFI:Unified Extensible Firmware Interface,中文名称"统一的可扩展固件接口"。 Legacy:…...
2023NOIP A层联测20-点餐
一家新的餐馆开业了,为了吸引更多的顾客,每样餐品都有打折的活动。特别的,餐馆内一共有𝑛样菜品,编号从 1 1 1 到 n n n,每样菜品每人最多只能点一次。对于第 i i i 种菜品,其包含两种价格&a…...
3D LUT 滤镜 shader 源码分析
最近在做滤镜相关的渲染学习,目前大部分 LUT 滤镜代码实现都是参考由 GPUImage 提供的 LookupFilter 的逻辑,整个代码实现不多。参考网上的博文也有各种解释,参考了大量博文之后终于理解了,所以自己重新整理了一份,方便…...
五分钟理解Java跨平台原理(适合小白)
JVM通俗的理解 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机,即JVM(Java Virtual Machine)是实现这一特点的关键。JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
深入理解 React 样式方案
React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...
Java设计模式:责任链模式
一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...
