代码随想录算法训练营第二十一天 235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
代码随想录算法训练营第二十一天 235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
235.二叉搜索树的最近公共祖先
思路
同上一天的最后一道题:“236.二叉树的最近公共祖先”
701.二叉搜索树中的插入操作
题目链接:力扣题目链接
文章讲解:代码随想录(https://programmercarl.com)
视频讲解:原来这么简单? | LeetCode:701.二叉搜索树中的插入操作
状态:AC
思路
- 寻找应该插入的位置,和当前的根节点比较
- 找到插入
代码
1 |
|
450. 删除二叉搜索树中的节点
题目链接:力扣题目链接
文章讲解:代码随想录(https://programmercarl.com)
视频讲解:调整二叉树的结构最难!| LeetCode:450.删除二叉搜索树中的节点
状态:AC
思路
思路大体上还算好想,其中一种情况困扰了好久,还是看了看题解。在树中查找应该删除的节点
- 当前递归到空节点,说明没找到
如果找到
如果是叶子节点,直接删
return nil
如果左空右不空,右节点直接上位
如果左不空有空,左节点直接上位
如果左右都不空,需要将左子树找到新家
第五点删除过程在下方视频中展示
代码
1 |
|
代码随想录算法训练营第二十一天 235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
https://promisewang.github.io/post/1b36a0ee.html