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

leetcode 1110. 删点成林

给出二叉树的根节点 root,树上每个节点都有一个不同的值。

如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。

返回森林中的每棵树。你可以按任意顺序组织答案。

示例 1:

输入:root = [1,2,3,4,5,6,7], to_delete = [3,5]
输出:[[1,2,null,4],[6],[7]]
示例 2:

输入:root = [1,2,4,null,3], to_delete = [3]
输出:[[1,2,4]]

leetcode链接:https://leetcode.cn/problems/delete-nodes-and-return-forest

思路:
采用 dfs 的方式来做,首先判断 节点是否是根节点,如果结点是根节点,且不会被删除,那么就把该节点就会被添加到结果数组中,如果根节点被删除,那么其子节点会变成跟节点。

# 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 __init__(self):self.res = []def delNode(self, root, to_delete_dict, is_root):if root == None:return Noneis_del = root.val in to_delete_dict### 如果 root 节点被删除, 那么其左右子节点都是根节点root.left = self.delNode(root.left, to_delete_dict, is_del)root.right = self.delNode(root.right, to_delete_dict, is_del)if is_del:return Noneelse:#### 如果是根节点,并且不会删除, 则添加if is_root:self.res.append(root)return rootdef delNodes(self, root: Optional[TreeNode], to_delete: List[int]) -> List[TreeNode]:if root == None:return []to_delete_dict = {}for x in to_delete:to_delete_dict[x] = 1temp = self.delNode(root, to_delete_dict, True)return self.res

相关文章:

leetcode 1110. 删点成林

给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。 返回森林中的每棵树。你可以按任意顺序组织答案…...

华为Harmony应用开发初探

HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体…...

电脑应用程序发生异常怎么办?

有时候我们打开电脑上面的某个软件时,会打不开,并且会弹出如下的错误提示“应用程序发生异常 未知的软件异常(xxx),位置为xx”。相信大多数的人在使用电脑的时…...

【JAVA】准备工作------Java开发环境搭建,IDEA的基础设置与操作

🍉内容专栏:【JAVA】 🍉本文脉络:JAVA的准备工作,IDEA的安装以及基础设置和快捷操作 🍉本文作者:Melon西西 🍉发布时间 :2023.7.11 目录 1. 概述JDK、JRE 2. 第一个程序——创建…...

操作系统真象还原——第5章 保护模式进阶,向内核迈进

第5章 保护模式进阶,向内核迈进 BIOS中断利用0x15子功能0xe802获取内存 汇编语言子功能的调用 填写调用前相关寄存器进行int中断调用获取返回结果输出到对应寄存器的值 80286 拥有24 位地址线,其寻址空间是16MB 。有一些ISA 只使用15MB,剩下…...

设计一款助听器可能需要用到以下音频算法

设计一款助听器可能需要用到以下音频算法: 1 响度补偿算法:助听器可能需要根据用户的听力损失情况调整不同频率范围内的增益,以提供个性化的听力补偿。这可以通过基于用户配置或自适应算法的频率响应调整来实现。 2 噪声抑制:用于…...

【端午节】用Vue3写粽子——从零开始

前言 在端午节即将到来之际,我们来一起写一个粽子组件来庆祝这个传统节日。 准备工作 首先,我们需要安装Vue3及其相关依赖,这里使用Vue CLI来创建项目。 # 安装Vue CLI npm install -g vue/cli # 创建Vue3项目 vue create zongzi接下来&a…...

大象机器人人工智能套装2023版深度学习协作机器人、先进机器视觉与应用场景

引言: 介绍当前的版本 今天我们要介绍的是aikit2023,aikit2023是aikit的全新升级版。 AIkit 2023 是一套集视觉,定位抓取、自动分拣模块为一体的入门级人工智能套装。 该套装基于python平台,可通过开发软件实现机械臂的控制&am…...

Cesium Token申请

一、什么是Cesium ion? Cesium ion是一个提供瓦片图和3D地理空间数据的平台,支持把数据添加到用户自己的应用程序中。 二、为什么需要access token? 使用Cesium ion需要申请access token,当用户将数据添加到自己的账户后,便可以…...

ubuntu系统自带的Text Editor编辑器不高亮解决办法

平时在写launch文件时,我喜欢用ubuntu系统自带的text编辑器,但发现使用text打开launch 文件时,没有高亮功能了,如下图所示: 解决办法非常简单,因为launch和xml文件语法规则类似,只需将text编辑…...

Docker NGINX 加载Geoip模板

前提环境: Docker 环境 涉及参考文档: ngx_http_geoip_module 模块Loki NGINX Service MeshGeoIP IP库 一、下载GeoIP IP库 二、配置Nginx主配置文件 vim /data/nginx/MangoMoh/dos/nginx.confuser nginx; worker_processes auto;error_log /var…...

springboot基于协同过滤算法商品推荐系统

开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器&…...

基于机器学习算法:朴素贝叶斯和SVM 分类-垃圾邮件识别分类系统(含Python工程全源码)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境安装pytesseract注册百度云账号 模块实现1. 数据模块2. 模型构建3. 附加功能 系统测试1. 文字邮件测试准确率2. 网页测试结果 工程源代码下载其它资料下载 前言 本项目采用朴素贝叶斯和支持向量机(S…...

在Linux下将PNG和JPG批量互转的四种方法

计算机术语中,批处理指的是用一个非交互式的程序来执行一序列的任务的方法。这篇教程里,我们会使用 Linux 命令行工具,并提供 4 种简单的处理方式来把一些 .PNG 格式的图像批量转换成 .JPG 格式的,以及转换回来。 计算机术语中&a…...

Scala中使用 break 和 continue

Scala中没有 break 和 continue 关键字,但是我们可以用 Breaks 类提供的相应方法来实现对应功能。 在Java中,break continue return的区别 1、break:break不仅可以结束其所在的循环,还可结束其外层循环,但一次只能结束…...

【全栈开发指南】打包sentinel-dashboard镜像推送到Docker Hub镜像仓库

在使用sentinel-dashboard的时候,发现官方并没有把jar包发布到Docker Hub镜像仓库,所以,我们需要自己手动将需要版本的sentinel-dashboard.jar发布到Docker Hub镜像仓库。首先需要在Docker Hub镜像仓库网站 https://hub.docker.com/ 上注册账…...

【数据可视化】SVG(一)

一、邂逅SVG和初体验 什么是SVG  SVG全称为(Scalable Vector Graphics),即可缩放矢量图形。(矢量定义:既有大小又有方向的量。在物理学中称作矢量,如一个带箭头线段:长度表示大小&#xff0…...

linux 系统errno 对应参考及代码

结论 linux下系统errno都有对应的说明描述&#xff0c;发生错误时获取errno即可知道具体问题描述 如下图 代码如下 golang版 package main import ("syscall""strings""fmt" ) func main() {for i : 0; i < 200; i {if !strings.HasPrefi…...

PowerShell快速ssh

文件 ~/.ssh/config 内容 Host masterHostName 192.168.10.154User root访问 $ ssh master 效果 进阶 免密的方式ssh 本地生成秘钥 ssh-keygen输入文件名称然后两次回车&#xff0c;完成后&#xff0c;在~/.ssh目录下会生成my_rsa和 my_rsa.pub两个文件 linux服务器上…...

从php5.6到golang1.19-文库App性能跃迁之路

作者 | 百度文库App 导读 本文深入浅出地分享了百度文库App服务端技术栈从PHP迁移至Go的实战经验&#xff0c;包含了技术选型、基础建设、流量迁移的具体方案&#xff0c;以及核心项目案例的重构实践。 全文6209字&#xff0c;预计阅读时间16分钟。 01 动机 长期以来&#xff…...

USBToolBox高效管理实战指南:多设备USB映射自动化配置全流程

USBToolBox高效管理实战指南&#xff1a;多设备USB映射自动化配置全流程 【免费下载链接】tool the USBToolBox tool 项目地址: https://gitcode.com/gh_mirrors/too/tool 在现代多设备办公环境中&#xff0c;USB映射&#xff08;将物理USB端口映射为系统可识别的逻辑设…...

不止于部署:用Docker和Helm在K8s上玩转JFrog Artifactory + Xray安全扫描全家桶

云原生时代的DevSecOps实践&#xff1a;基于Docker与Helm的JFrog全家桶深度集成指南 当微服务架构成为企业数字化转型的标配&#xff0c;如何高效管理海量制品并确保其安全性&#xff0c;已成为每个技术团队必须面对的挑战。传统单机部署模式在弹性扩展、灾备能力等方面的局限性…...

避坑指南:用conda管理TensorFlow环境时如何避免FailedPreconditionError日志目录冲突

避坑指南&#xff1a;用conda管理TensorFlow环境时如何避免FailedPreconditionError日志目录冲突 在深度学习项目开发中&#xff0c;TensorFlow作为主流框架之一&#xff0c;其环境配置的稳定性直接影响开发效率。许多开发者习惯使用conda进行Python环境管理&#xff0c;但在Te…...

HC32F4A0 SysTick定时器实战:从240MHz主频到1ms精准延时的完整配置流程

HC32F4A0 SysTick定时器深度实战&#xff1a;240MHz主频下的毫秒级精准延时实现 在嵌入式系统开发中&#xff0c;精准的时间控制往往是项目成败的关键。想象一下&#xff0c;当你需要实现一个精确的电机控制算法&#xff0c;或者构建一个实时数据采集系统时&#xff0c;毫秒甚至…...

FreeRTOS定时器那些坑:调试3天发现的优先级配置与内存泄漏问题

FreeRTOS定时器实战避坑指南&#xff1a;从优先级陷阱到内存泄漏的深度解析 凌晨三点的调试灯依然亮着&#xff0c;逻辑分析仪屏幕上跳动的波形似乎在嘲弄我的无知——这已经是连续第三天被FreeRTOS定时器"教做人"了。从优先级配置失误导致系统卡死&#xff0c;到内存…...

Windows系统OpenClaw避坑指南:nanobot镜像部署常见报错解决

Windows系统OpenClaw避坑指南&#xff1a;nanobot镜像部署常见报错解决 1. 为什么选择nanobot镜像部署OpenClaw 去年我在尝试将OpenClaw接入本地大模型时&#xff0c;被复杂的依赖关系和GPU配置折磨得够呛。直到发现星图平台的nanobot镜像——这个预装了Qwen3-4B-Instruct模型…...

DownKyi:B站视频高效解决方案——如何三步搞定8K资源本地化管理

DownKyi&#xff1a;B站视频高效解决方案——如何三步搞定8K资源本地化管理 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印…...

SHA-3:从海绵结构到抗量子密码学的基石

1. SHA-3的诞生背景与核心价值 2004年&#xff0c;密码学界发现SHA-1存在理论漏洞&#xff0c;这直接推动了NIST启动新一代哈希算法竞赛。经过5年激烈角逐&#xff0c;Keccak团队提出的海绵结构方案最终胜出。与传统哈希算法不同&#xff0c;SHA-3不是对SHA-2的简单升级&#x…...

模块化生产体系:戴森球计划从工厂到星系的进阶指南

模块化生产体系&#xff1a;戴森球计划从工厂到星系的进阶指南 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 在戴森球计划的宇宙探索中&#xff0c;高效的生产体系是从母…...

UniApp跨平台跳转外部链接全攻略:H5、App与小程序实战解析

1. UniApp跳转外部链接的核心逻辑 跨平台开发最头疼的就是"一套代码适配多个平台"&#xff0c;而外部链接跳转恰恰是平台差异最明显的功能之一。我做过十几个UniApp项目&#xff0c;发现90%的开发者第一次遇到这个问题都会懵——为什么在H5能用的代码&#xff0c;打包…...