「力扣」第 104 题:求一棵二叉树的最大深度(简单)


「力扣」第 450 题:删除二叉搜索树中的节点

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

一般来说,删除节点可分为两个步骤:

  1. 首先找到需要删除的节点;
  2. 如果找到了,删除它。

说明: 要求算法时间复杂度为 O(h),h 为树的高度。

示例:

root = [5,3,6,2,4,null,7]
key = 3

    5
   / \
  3   6
 / \   \
2   4   7

给定需要删除的节点值是 3,所以我们首先找到 3 这个节点,然后删除它。

一个正确的答案是 [5,4,6,2,null,null,7], 如下图所示。

    5
   / \
  4   6
 /     \
2       7

另一个正确答案是 [5,2,6,null,4,null,7]。

    5
   / \
  2   6
   \   \
    4   7

分析:删除结点是一个比较复杂的操作,一定要会。给定一棵二分搜索树,删除其中的一个结点。若删除的结点不存在?是否可能有多个需要删除的结点,删除的结点是否需要返回?

这个问题我以前专门写了题解,请点击这里


文章作者: liweiwei1419
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liweiwei1419 !
评论
 上一篇
「力扣」第 703 题:数据流中的第 k 大元素(简单) 「力扣」第 703 题:数据流中的第 k 大元素(简单)
「力扣」第 703 题:数据流中的第 k 大元素(简单) 链接:https://leetcode-cn.com/problems/kth-largest-element-in-a-stream 设计一个找到数据流中第K大元素的类(cla
下一篇 
「力扣」第 449 题:序列化和反序列化二叉搜索树(中等) 「力扣」第 449 题:序列化和反序列化二叉搜索树(中等)
「力扣」第 449 题:序列化和反序列化二叉搜索树(中等) 链接:https://leetcode-cn.com/problems/serialize-and-deserialize-bst
  目录