当前位置: 首页 > 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.mrgr.cn/news/41062.html

相关文章:

  • 梯度检查点技术的使用
  • Java中的自动重试机制:如何实现幂等与错误恢复
  • VS Code 图形化合并工具
  • 算法笔记(四)——模拟
  • 天呐!关于PyCharm你竟然一无所知?
  • [Linux]开发环境搭建
  • (笔记)第三期书生·浦语大模型实战营(十一卷王场)--书生入门岛通关第2关Python 基础知识
  • DAY84服务攻防-端口协议桌面应用QQWPS 等 RCEhydra 口令猜解未授权检测
  • Yocto - 使用Yocto开发嵌入式Linux系统_05 认识Bitbake工具
  • 计算机视觉算法:全面深入的探索与应用
  • 【内存池】——解决传统内存分配的弊端
  • 王道数据结构代码讲解
  • 一文彻底搞懂多模态 - 基础术语+基础知识+多模态学习
  • 网页前端开发之Javascript入门篇(3/9):条件控制
  • 操作系统错题解析【软考】
  • [MAUI]数据绑定和MVVM:MVVM的属性验证
  • 2024 全新体验:国学心理 API 接口来袭
  • 交换机如何开启FTP服务
  • 电商店铺多开自动回复软件
  • 【递归】11. leetcode 129 求根节点到叶节点数字之和