LeetCode 450. 删除二叉搜索树中的节点
参考 二叉搜索树删除操作
- 要删除节点有2子节点,找到右子树中最小的节点,将其val值覆盖要删除的节点值,再删除这个最小节点
- 要删除的节点的子节点为1个或0个,直接将要删除的节点的父节点指向子的子节点
class Solution {public:TreeNode* deleteNode(TreeNode* root, int key) {TreeNode *parent = NULL, *cur = root;while(cur && cur->val != key){parent = cur;if(cur->val < key)cur = cur->right;elsecur = cur->left;}if(cur == NULL)return root;if(cur->left != NULL && cur->right != NULL){//要删除的节点有2个子节点,找到右子树最小的换上去,在删除TreeNode *minP = cur->right, *minPfather = cur;while(minP->left){minPfather = minP;minP = minP->left;}cur->val = minP->val;cur = minP;//要删除的curparent = minPfather;}//要删除的节点有1个或0个子节点TreeNode *child;if(cur->left)child = cur->left;else if(cur->right)child = cur->right;elsechild = NULL;if(parent == NULL)//要删的是根节点root = child;else if(cur == parent->left)parent->left = child;elseparent->right = child;return root;}
};
LeetCode 450. 删除二叉搜索树中的节点相关推荐
- leetcode 450. 删除二叉搜索树中的节点 c语言实现
如题: 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变.返回二叉搜索树(有可能被更新)的根节点的引用. 一般来说,删除节点可 ...
- 67. Leetcode 450. 删除二叉搜索树中的节点 (二叉搜索树-基本操作类)
给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变.返回二叉搜索树(有可能被更新)的根节点的引用.一般来说,删除节点可分为两个步 ...
- 代码随想录算法训练营第22天 二叉树 java :235. 二叉树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点
文章目录 LeetCode 236. 二叉树的最近公共祖先 题目讲解 思路 LeetCode 701.二叉搜索树中的插入操作 题目讲解 思路 LeetCode 450.删除二叉搜索树中的节点 题目讲解 ...
- 二叉树part8 | ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点
文章目录 235. 二叉搜索树的最近公共祖先 思路 代码 困难 701.二叉搜索树中的插入操作 思路 代码 450.删除二叉搜索树中的节点 思路 代码 困难 今日收获 235. 二叉搜索树的最近公共祖 ...
- 450. 删除二叉搜索树中的节点
给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变.返回二叉搜索树(有可能被更新)的根节点的引用. 一般来说,删除节点可分为两个 ...
- 力扣450. 删除二叉搜索树中的节点(JavaScript)
var deleteNode = function(root, key) {//没找到if(root==null){return root}//找到了if(root.val==key){//1,没有子 ...
- LeetCode刷题实战450:删除二叉搜索树中的节点
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode450题—— 删除二叉搜索树中的节点
首先需要认识什么是二叉搜索树,可以进入百度词条https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91/70 ...
- 【数据结构与算法】之深入解析“删除二叉搜索树中的节点”的求解思路与算法示例
一.题目要求 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变,返回二叉搜索树(有可能被更新)的根节点的引用. 一般来说,删除 ...
最新文章
- python import io_详解Python IO编程
- mybatis 配置文件中set丢失逗号
- 云炬Android开发教程 Android studio的详细安装步骤
- 事物的开始和结束命令分别是什么_AutoCAD小秘密065:LOFT命令,创建天圆地方
- beoplay耳机序列号查询_BOSE耳机序列号如何查询?
- grafana zabbix 模板_Grafana + Zabbix 监控系统搭建
- Vue、J2ee - 001 : Vue项目的创建过程
- python 面向对象的封装_Python面向对象封装操作案例详解
- java 面试常问问题
- George Moody 对OSEA 软件的修改
- 三个 CSS 预处理器(框架):Sass、LESS 和 Stylus
- Tomcat 7 的七大新特性
- PKI/CA工作原理及架构
- 通俗的理解:什么是编程语言?
- awk从atq检索第一个字段报告 [英]awk to retrieve the first field report from atq
- 毁三观:从 onSavedInstanceState 中取值竟为空?!
- 原装苹果手机_“苹果”手机换个屏水这么深!嘉兴警方揭开“原装屏”背后真相...
- rog主板php,功能丰富的主板BIOS
- mercury路由器重置后服务器无响应,MERCURY无线路由器重置后重新设置不能 – 手机爱问...
- 大公开!精美动图制作只需这几款工具!
热门文章
- 人脸识别进水_万维|人脸识别闸机怎么选?
- 数据结构:排序算法之堆排序和选择排序
- android系统提供了url通信,Android两种HTTP通信,HttpURLConnection和HttpClient
- Android查看真机布局,android-外部存储
- mysql的char和varchar_MySQL的char和varchar
- c++远征之模板篇——标准模板库(STL)
- pandas用众数填充缺失值_python数据分析包|Pandas-02之缺失值(NA)处理
- odoo基础数据加载
- EUREKA原理总结
- MySQL中Index Condition Pushdown(ICP)优化