【Day18】LeetCode:669. 修剪二叉搜索树,108. 将有序数组转换为二叉搜索树,538. 把二叉搜索树转换为累加树
文章目录LeetCode669. 修剪二叉搜索树思路解答LeetCode108. 将有序数组转换为二叉搜索树思路解答LeetCode538. 把二叉搜索树转换为累加树思路解答LeetCode669. 修剪二叉搜索树https://leetcode.cn/problems/trim-a-binary-search-tree/思路递归终止条件当前节点为空返回 None。curr.val low说明当前节点及其左子树都更小直接剪掉。但右子树中可能有符合条件的节点因此递归修剪右子树并将结果作为新的子树返回。curr.val high同理递归修剪左子树并返回。low curr.val hight保留当前节点分别递归修剪左子树和右子树将修剪后的结果赋值给当前节点的左右子节点然后返回当前节点。解答# Definition for a binary tree node.# class TreeNode:# def __init__(self, val0, leftNone, rightNone):# self.val val# self.left left# self.right rightclassSolution:deftrimBST(self,root:Optional[TreeNode],low:int,high:int)-Optional[TreeNode]:ifnotroot:returnNoneifroot.vallow:# 根节点较小左子树剪掉递归处理右子树returnself.trimBST(root.right,low,high)elifroot.valhigh:# 根节点较大右子树剪掉递归处理左子树returnself.trimBST(root.left,low,high)else:# 根节点在范围内修剪左右子树并重新连接root.leftself.trimBST(root.left,low,high)root.rightself.trimBST(root.right,low,high)returnrootLeetCode108. 将有序数组转换为二叉搜索树https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/思路利用数组已排序的特性通过二分法不断将数组分成左右两部分选择数组的中间元素作为当前子树的根节点。中间元素左边的子数组递归构建左子树。中间元素右边的子数组递归构建右子树。解答# Definition for a binary tree node.# class TreeNode:# def __init__(self, val0, leftNone, rightNone):# self.val val# self.left left# self.right rightclassSolution:defsortedArrayToBST(self,nums:List[int])-Optional[TreeNode]:nlen(nums)ifn1:returnNonemidn//2nodeTreeNode()node.valnums[mid]left_numsnums[:mid]right_numsnums[mid1:]node.leftself.sortedArrayToBST(left_nums)node.rightself.sortedArrayToBST(right_nums)returnnodeLeetCode538. 把二叉搜索树转换为累加树https://leetcode.cn/problems/convert-bst-to-greater-tree/思路利用反向中序遍历右-中-左则每个访问节点都变成所有已访问过的节点总和。例如B S T BSTBST[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]有其反向中序遍历结果为[8, 7, 6, 5, 4, 3, 2, 1, 0]其更改后为[8, 15, 21, 26, 30, 33, 35, 36, 36]。解答# Definition for a binary tree node.# class TreeNode:# def __init__(self, val0, leftNone, rightNone):# self.val val# self.left left# self.right rightclassSolution:defconvertBST(self,root:Optional[TreeNode])-Optional[TreeNode]:total0# 反向中序遍历stk[]currrootwhilestkorcurr:whilecurr:stk.append(curr)currcurr.right currstk.pop()totalcurr.val# 统计已访问过的节点总和curr.valtotal# 更新节点currcurr.left# 转到左子树returnroot

相关新闻

PC流程图模板大全 中文定制化满足不同行业需求

PC流程图模板大全 中文定制化满足不同行业需求

一、流程图通用规范与核心绘制逻辑 流程图是流程可视化、逻辑标准化的核心载体,在软件开发、企业管理、生产制造、政务办公等场景中广泛使用。遵循统一规范是确保流程图跨部门、跨行业可理解的基础,目前国内通用GB/T 15532—2008标准,国际通…

2026/7/3 15:31:26 阅读更多 →
转轮数组(github)

转轮数组(github)

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数示例 1: - 输入: nums [1,2,3,4,5,6,7], k 3- 输出: [5,6,7,1,2,3,4]解释: - 向右轮转 1 步: [7,1,2,3,4,5,6]- 向右轮转 2 步: [6,7,1,2,3,4,5]- 向右轮转 3 步: [5,…

2026/7/3 6:33:59 阅读更多 →
OpenClaw 全平台安装部署教程(Windows/macOS/云服务器)

OpenClaw 全平台安装部署教程(Windows/macOS/云服务器)

OpenClaw 是一款灵活的AI智能体工具,支持对接各类大模型(本地/云端),本文详细讲解全平台安装、配置流程,以及Windows环境下的常见踩坑解决方案。 一、环境准备 核心依赖 OpenClaw 基于 Node.js 运行,需先…

2026/5/17 9:15:53 阅读更多 →

最新新闻

研一快速产出AI论文:利用AI工具与开源资源实现高效科研

研一快速产出AI论文:利用AI工具与开源资源实现高效科研

这次我们来看一个研究生同学普遍关心的问题:导师放养,研一如何快速完成一篇毕业论文,甚至冲击SCI?这不是一个具体的软件项目,而是一套结合AI工具与系统化科研方法的实战策略。核心目标很明确:在有限的时间和…

2026/7/3 15:31:36 阅读更多 →
戴尔笔记本风扇终极控制指南:DellFanManagement让你告别噪音与过热烦恼

戴尔笔记本风扇终极控制指南:DellFanManagement让你告别噪音与过热烦恼

戴尔笔记本风扇终极控制指南:DellFanManagement让你告别噪音与过热烦恼 【免费下载链接】DellFanManagement A suite of tools for managing the fans in many Dell laptops. 项目地址: https://gitcode.com/gh_mirrors/de/DellFanManagement 还在为戴尔笔记…

2026/7/3 15:31:36 阅读更多 →
utdnsmasq源码解析:Rust实现的DNS缓存机制

utdnsmasq源码解析:Rust实现的DNS缓存机制

utdnsmasq源码解析:Rust实现的DNS缓存机制 【免费下载链接】utdnsmasq utdnsmasq is a refactoring of dnsmasq. 项目地址: https://gitcode.com/openeuler/utdnsmasq 前往项目官网免费下载:https://ar.openeuler.org/ar/ utdnsmasq是openEuler项…

2026/7/3 15:29:34 阅读更多 →
智驾不是自动驾驶:L2级辅助驾驶的本质与安全边界

智驾不是自动驾驶:L2级辅助驾驶的本质与安全边界

1. 项目概述:一场被误读的技术概念纠偏“智驾”不是“自动驾驶”——这句话从公安部官网发布后,迅速登上各大平台热搜。但很多人点进去只扫了一眼标题就划走,以为又是官媒在喊口号、打预防针。其实这短短十个字背后,是一次对行业术…

2026/7/3 15:27:29 阅读更多 →
AD74413R与PIC32MX675F512L的高精度混合信号系统设计

AD74413R与PIC32MX675F512L的高精度混合信号系统设计

1. 项目概述:AD74413R与PIC32MX675F512L的协同工作 在嵌入式系统设计中,同时实现高精度模拟信号采集(ADC)和输出(DAC)是工业控制、测试测量等领域的常见需求。AD74413R作为ADI公司推出的软件可配置输入/输出…

2026/7/3 15:27:29 阅读更多 →
SIP工艺在电流频率转换模块中的应用:陶瓷封装、金丝键合与气密性设计的技术优势

SIP工艺在电流频率转换模块中的应用:陶瓷封装、金丝键合与气密性设计的技术优势

电流频率(I/F)转换模块作为测控系统中的关键信号链路器件,其封装形式直接影响整体系统的集成度、可靠性和环境适应性。本文从SIP(System in Package)封装工艺的角度,分析将I/F转换电路集成到SIP模块中的技术…

2026/7/3 15:25:28 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻