1.3 力扣二叉树中等题

题目一:

669. 修剪二叉搜索树

给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。

所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。

示例 1:

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

示例 2:

输入:root = [3,0,4,null,2,null,null,1], low = 1, high = 3
输出:[3,2,null,1]

此前还做过一次:9.10 力扣669. 修剪二叉搜索树_修剪二叉查找树,使得树中所有节点的值在[low, high]中,并输出修剪后二叉查找树,-CSDN博客过了这么久再做,需要思考时间更短了,代码也更精简了许多(也可能是做过的原因)。hhhh

思路:

需要将二叉搜索树的值控制在【low,high】,只需要找到 恰好等于low,high值的节点时

1.val<low

       只保留右孩子节点满足【low,high】的值即可

2.val>high

        只保留左孩子节点满足【low,high】的值即可

保留这些孩子节点的方式可以用递归判断

将不需要保留的节点进行delete,但不是本题的重点内容(省略没写)

class Solution {
public:TreeNode* trimBST(TreeNode* root, int low, int high) {if(!root) return root;if(root->val>high){//将该节点、左子树进行delete//.......//把适合的左子树进行返回return trimBST(root->left,low,high);}else if(root->val<low){//将该节点、右子树进行delete//.......//把合适的右子树进行返回return trimBST(root->right,low,high);}root->left=trimBST(root->left,low,high);root->right=trimBST(root->right,low,high);return root;}
};

题目二:

538. 把二叉搜索树转换为累加树 - 力扣(LeetCode)
 

给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。

提醒一下,二叉搜索树满足下列约束条件:

  • 节点的左子树仅包含键 小于 节点键的节点。
  • 节点的右子树仅包含键 大于 节点键的节点。
  • 左右子树也必须是二叉搜索树、

示例 1:

输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]

示例 2:

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

思路:

代码随想录 (programmercarl.com)

累加树是啥?正常前序遍历的结果是[2, 5, 13],求从后到前的累加数组,也就是[20, 18, 13]

按 右 中 左 顺序将二叉树累加起来即可

细节:需要用一个pre记录上一个节点,并仅在 处理当前节点时改变该pre=cur

class Solution {
public:TreeNode* sumBST(TreeNode* cur,TreeNode*& pre){if(!cur) return nullptr;//右子树cur->right=sumBST(cur->right,pre);//中间节点if(pre) cur->val+=pre->val;pre=cur;//左子树cur->left=sumBST(cur->left,pre);return cur;}TreeNode* convertBST(TreeNode* root) {TreeNode* temp=nullptr;sumBST(root,temp);return root;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/318734.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的异常如何处理?

在Java编程中&#xff0c;异常是一种在程序执行期间发生的意外情况。学会处理异常是编写健壮、可靠程序的关键之一。 为什么需要异常处理&#xff1f; 异常处理允许程序在发生错误时进行优雅而有序的处理&#xff0c;而不是导致程序崩溃。这有助于提高程序的可维护性和用户体…

【办公软件】修改U盘的默认盘符

在工作中我们可能会因为有一些大型软件设置了库文件路径&#xff08;如Z盘&#xff09;。在家办公时通过U盘的方式将库拷入在U盘中&#xff0c;但是到家里的电脑上&#xff0c;U盘插入后会默认一个盘符&#xff08;如E盘&#xff09;&#xff0c;那么应该怎么操作呢&#xff1f…

UE5 产品三维交互展示 创意收集

1. 无人机展示 https://www.bilibili.com/video/BV12N4y1g7gA/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 开场是场景漫游重要部件靠近观察颜色调整拆分与合并&#xff0c;过程流畅拆分后靠近观察产品动画&#xff0c;动画中&…

音效出众设计时尚,内置AI功能,sanag塞那Z50上手

现在蓝牙耳机已经成为人们生活中不可或缺的一部分了&#xff0c;像是在上班、坐车的时候&#xff0c;既可以享受自己的音乐空间&#xff0c;又不会吵到别人&#xff0c;看书、做题还是运动的时候&#xff0c;也可以保证长时间使用耳朵卫生、舒适度。正因为庞大的市场需求&#…

深圳找工作一般去哪里找

深圳找工作一般在 吉鹿力招聘网上找 吉鹿力招聘网是一个权威的招聘平台&#xff0c;基本可以信任。公司通常先通过吉鹿力招聘网发布招聘信息。而求职者也可以先在吉鹿力招聘网网上了解招聘信息&#xff0c;然后投递简历。因为吉鹿力招聘网是一个综合性、专业性较强的地方&…

机器人技能学习--数据集剖析

文章目录 前言数据总览数据介绍actionsrobot0_eef_poserobot0_eef_quatstatesobject 参考资料 前言 一切为了能自己构建属于自己的数据集&#xff0c;所以&#xff0c;从现有数据集剖析入手。    目前&#xff0c;基于 MimicGen 官方提供的数据集&#xff0c;初始数据集有11组…

【linux】ufw 的基本使用

碎碎念 所有的云平台的网络流量的进出基本上有三层&#xff0c;首先是虚拟网的流量控制&#xff0c;一般是通过子网访问控制列表来控制vpc也好子网也好的流量出入&#xff0c;其次是安全组控制一层&#xff0c;通过安全组规则控制一类/一组主机&#xff08;指EC2/ECS/VM/CE这些…

看完,你还会学鸿蒙吗?

是不是前端程序员的春天&#xff0c;我们可以分析鸿蒙现在的市场和布局。其实不仅仅只是前端&#xff0c;还有Android、Java、Python等等开发人员都可以把鸿蒙当做新的出路。 2024年程序员为什么一定要学鸿蒙&#xff1f; 首先&#xff0c;鸿蒙作为一个新系统的出现。它的结构…

邀请函 | 通付盾出席第四期移动互联网App产品安全漏洞技术沙龙

为深入贯彻落实《网络产品安全漏洞管理规定》&#xff0c;规范移动互联网 App 产品安全漏洞发现、报告、修补和发布等行为&#xff0c;提升网络产品提供者安全漏洞管理意识&#xff0c;探索最前沿的漏洞技术发展趋势和创新应用&#xff0c;搭建权威、专业、深度、创新的交流平台…

Hi5 2.0 虚拟手与追踪器(Tracker)的位置修正

问题描述 使用环境与工具&#xff1a;Unity 2022.3.4fc1&#xff0c;steam VR(2.7.3)&#xff0c;steamvrSDK&#xff08;1.14.15&#xff09;&#xff0c;HTC vive pro专业版&#xff0c;Hi5 2.0数据手套 首先按照Hi5 2.0的使用说明&#xff08;可参考&#xff1a;HI5 2.0 交…

【K8S 资源管理】声明式资源管理

目录 一、常用的发布方式 1、蓝绿发布&#xff1a; 2、金丝雀发布&#xff08;灰度发布&#xff09;&#xff1a; 3、滚动更新&#xff08;deployment的默认更新方式&#xff09;&#xff1a; 二、声明式管理方法&#xff08;yaml文件&#xff09; 1、三种发布命令&#x…

23年全年游戏获版号破千,对游戏行业传达积极信号

12月25日&#xff0c;国家新闻出版署公布了新一批国产网络游戏版号&#xff0c;本次发布的过审版号中进口版号共有40款游戏过审&#xff0c;国产版号共有105款游戏过审&#xff01;单次审批数量首次突破百款&#xff0c;其中8款为移动客户端&#xff0c;3款为客户端&#xff0c…