代码随想录day28(2)二叉树:删除二叉搜索树中的节点(leetcode450)

题目要求:给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。

思路:首先要删除二叉搜索树中的节点,第一步就是找到此节点,如果遍历到空就直接返回。删除时可能有以下几种情况:

1.为叶子节点(左右孩子均空),直接删除即可

2.左子树不空右子树空(或左子树空右子树不空),删除节点,将其左孩子(右孩子)进行补位

3.左右孩子均不空,此时应该将删除节点的左孩子(或右孩子)放到删除节点的右子树最左节点的左孩子上(左子树最右节点的右孩子上)

leetcode实战:

代码实现:

递归法:

迭代法:

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 22:32:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 22:32:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 22:32:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 22:32:05       20 阅读

热门阅读

  1. 动态规划——买卖股票C++

    2024-03-27 22:32:05       18 阅读
  2. 深度学习(23):SmoothL1Loss损失函数

    2024-03-27 22:32:05       15 阅读
  3. 使用GO语言验证证书的有效期

    2024-03-27 22:32:05       18 阅读
  4. 免费身份证实名认证接口|PHP开发示例调用

    2024-03-27 22:32:05       19 阅读
  5. 【学不动系列】lint-staged 使用教程

    2024-03-27 22:32:05       19 阅读
  6. 【vivado】在原有工程上新建工程

    2024-03-27 22:32:05       18 阅读
  7. 【GameFramework框架内置模块】17、声音(Sound)

    2024-03-27 22:32:05       21 阅读
  8. FunASR 框架使用;api服务搭建

    2024-03-27 22:32:05       16 阅读
  9. vue中el-tree默认选中节点问题

    2024-03-27 22:32:05       18 阅读
  10. Python自动连接SSH

    2024-03-27 22:32:05       18 阅读
  11. docker centos7在线安装redis

    2024-03-27 22:32:05       17 阅读