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

C语言 | Leetcode C语言题解之第450题删除二叉搜索树中的节点

题目:

题解:

struct TreeNode* deleteNode(struct TreeNode* root, int key){struct TreeNode *cur = root, *curParent = NULL;while (cur && cur->val != key) {curParent = cur;if (cur->val > key) {cur = cur->left;} else {cur = cur->right;}}if (!cur) {return root;}if (!cur->left && !cur->right) {cur = NULL;} else if (!cur->right) {cur = cur->left;} else if (!cur->left) {cur = cur->right;} else {struct TreeNode *successor = cur->right, *successorParent = cur;while (successor->left) {successorParent = successor;successor = successor->left;}if (successorParent->val == cur->val) {successorParent->right = successor->right;} else {successorParent->left = successor->right;}successor->right = cur->right;successor->left = cur->left;cur = successor;}if (!curParent) {return cur;} else {if (curParent->left && curParent->left->val == key) {curParent->left = cur;} else {curParent->right = cur;}return root;}
}
http://www.lryc.cn/news/452342.html

相关文章:

  • 智慧防灾,科技先行:EasyCVR平台助力地质灾害视频监测系统建设
  • 掌握C#核心概念:类、继承、泛型等
  • [VULFOCUS刷题]tomcat-pass-getshell 弱口令
  • golang rpc
  • A Learning-Based Approach to Static Program Slicing —— 论文笔记
  • 掌握 C# 中的委托与事件机制
  • 使用微服务Spring Cloud集成Kafka实现异步通信(消费者)
  • docker pull 超时Timeout失败的解决办法
  • YOLOv7改进之主干DAMOYOLO结构,结合 CReToNeXt 结构,打造高性能检测器
  • 进度条(倒计时)Linux
  • [每周一更]-(第117期):硬盘分区表类型:MBR和GPT区别
  • 河南移动:核心营业系统稳定运行超300天,数据库分布式升级实践|OceanBase案例
  • 22.1 k8s不同role级别的服务发现
  • OpenCV计算机视觉库
  • CentOS 系统中的文件挂载 U 盘
  • Lumerical脚本语言-变量操作(Manipulating variables)
  • 一个基本的包括爬虫、数据存储和前端展示框架0
  • 简历制作面试篇
  • 智能制造--EAP设备自动化程序
  • LabVIEW混合控制器质量检测
  • 新技术浪潮下的等保测评:云计算、物联网与大数据的挑战与机遇
  • 微信小程序技术框架选型
  • SQL学习3
  • Linux:进程控制(一)
  • 初识算法 · 双指针(3)
  • 【AI知识点】近似最近邻搜索(ANN, Approximate Nearest Neighbor Search)
  • 编程工具简介
  • 汽车信息安全 -- 存到HSM中的密钥还需包裹吗?
  • 【PostgreSQL】入门篇——SELECT、INSERT、UPDATE 和 DELETE 语句,SQL 中最常用的四种操作用法
  • 【Ubuntu】安装常用软件包-mysql