111、【树与二叉树】leetcode ——669. 修剪二叉搜索树:递归法(C++版本)

news/2023/6/7 22:50:10

题目描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解题思路

本题的关键是用好递归这个结构,用好每次他向下的遍历和返回的值。每一次递归时,相当于解决与之前相同的问题,因此先按某一种类子问题进行讨论(仅有三个结点的满二叉树),当递归的方式向下遍历时,处理逻辑与之相同。用好递归去改变指向,而不用自己去调整整个树。

大题思路类似于 450.删除二叉搜索树中的节点(递归法+迭代法) ,区别在于删除的是某一区域的节点值,并且要保留区域内部的节点值。

对于第一次找到结点值小于low的情况,有两种:(1)该结点无右子树,那么直接删除这个结点及以下的子树即可,返回NULL;(2)该结点有右子树,那么右子树中可能有大于low的情况,需要继续向右遍历。

同理,对于第一次找到结点值大于high的情况,也有两种:(1)该结点无左子树,那么直接删除这个结点及以下的子树即可,返回NULL;(2)该结点有左子树,那么左子树中可能有小于high的情况,需要继续向左遍历。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:TreeNode* trimBST(TreeNode* root, int low, int high) {if(!root)                   return NULL;// 当找到的结点值小于low时,继续向右遍历,保留大于low的,删除小于low的if(root->val < low)         return trimBST(root->right, low, high);// 当找到的结点值大于high时,继续向左遍历,保留小于high的,删除大于high的if(root->val > high)        return trimBST(root->left, low, high);root->left = trimBST(root->left, low, high);root->right = trimBST(root->right, low, high);return root;}
};

参考文章:669. 修剪二叉搜索树

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

i7 12650h怎么样 相当于什么水平

i712650h采用10nm制作工艺 拥有10核心16线程主频为2.3GHz&#xff0c;睿频为4.7GHz&#xff0c;三级缓存高达24MB 功耗 45wi7 12650h怎么样这些点很重要看过你就懂了 http://www.adiannao.cn/dy

i5 11320h怎么样 相当于什么水平

酷睿i5-11320H是一款适用于轻薄游戏笔记本电脑和移动工作站的中端SoC。 基本频率速度取决于TDP设置&#xff0c;并且可以从2.5&#xff08;28 W TDP&#xff09;到3.2 GHz&#xff08;35 W&#xff09;不等。 单核和双核在负载下的提升可以达到4.5 GHz。 所有四个内核均可达到4…

i7 12700H怎么样?相当于什么级别

i7-12700H 是一款 H45 处理器&#xff0c;具有六个性能 内核和八个效率 (E) 内核 (14C/20T)&#xff0c;属于我们现在所知的 Alder Lake-P系列。i7 12700H怎么样这些点很重要 http://www.adiannao.cn/dy 处理器基本频率为2.7GHz&#xff0c;最大频率可达4.6GHz&#xff0c;配…

i9 12900H 怎么样相当于什么水平

i9 12900H采用7nm 制作工艺14核心20线程&#xff0c;主频为2.5GHz&#xff0c;睿频为5GHz&#xff0c;三级缓存高达24MB TDP 45W 支持最大内存 64GB 内存类型 DDR5 4800MHz&#xff0c;DDR4 3200MHz&#xff0c;LPDDR5 5200MHz&#xff0c;LPDDR4X 4267MHz i9 12900H 怎么样这些…

i5 12500h参数 i5 12500h核显什么水平

i5 12500H是英特尔旗下最新发布一款处理器&#xff0c;采用的是Alder Lake H架构&#xff0c;10 nm制程工艺&#xff0c;12核心/20线程&#xff0c;前段4个性能核&#xff0c;后端8个能效核&#xff0c;三级缓存24MB&#xff0c;主频2.5GHz&#xff0c;睿频4.5GHz&#xff0c;性…

酷睿i5 12500h怎么样 i512500h是标压吗

i5 12500H是英特尔旗下最新发布一款处理器&#xff0c;采用的是Alder Lake H架构&#xff0c;10 nm制程工艺&#xff0c;12核心/20线程&#xff0c;前段4个性能核&#xff0c;后端8个能效核&#xff0c;三级缓存24MB&#xff0c;主频2.5GHz&#xff0c;睿频4.5GHz&#xff0c;性…

i5 11400h怎么样 相当于什么级别

英特尔酷睿i5-11400H是一款面向游戏笔记本和移动工作站的高端六核SoC。它基于Tiger Lake H45&#xff0c;将于2021年中期发布。它集成了6个Willow Cove处理器核心(支持HyperThreading&#xff0c;有12个线程)。 i5 11400h怎么样这些点很重要看过你就懂了 http://www.adiannao.c…

酷睿i5 12450h怎么样 i512450h参数相当于什么水平

i5-12450H是一款基于 Alder Lake 架构的笔记本电脑处理器&#xff0c;性能在H系列属于中端级别。它于 2022 年初发布&#xff0c;提供 4 个性能内核&#xff08;P 核心、Golden Cove 架构&#xff09;和 4 个高效核心&#xff08;E 核心、Gracemont 架构&#xff09;&#xff0…