目录
一,二叉树思维导图
求二叉搜索树的属性
-
- 递归:二叉搜索树的递归是有方向的
- 迭代:因为有方向,所以迭代法很简单
-
- 递归:中序,相当于变成了判断一个序列是不是递增的
- 迭代:模拟中序,逻辑相同
-
求二叉搜索树的最小绝对差(opens new window)
- 递归:中序,双指针操作
- 迭代:模拟中序,逻辑相同
-
-
递归:中序,清空结果集的技巧,遍历一遍便可求众数集合
-
递归:中序,双指针操作累加
-
迭代:模拟中序,逻辑相同
-
#二叉树公共祖先问题
- 二叉树的公共祖先问题(opens new window)
- 递归:后序,回溯,找到左子树出现目标值,右子树节点目标值的节点。
- 迭代:不适合模拟回溯
- 二叉搜索树的公共祖先问题(opens new window)
- 递归:顺序无所谓,如果节点的数值在目标区间就是最近公共祖先
- 迭代:按序遍历
#二叉搜索树的修改与构造
- 二叉搜索树中的插入操作(opens new window)
- 递归:顺序无所谓,通过递归函数返回值添加节点
- 迭代:按序遍历,需要记录插入父节点,这样才能做插入操作
- 二叉搜索树中的删除操作(opens new window)
- 递归:前序,想清楚删除非叶子节点的情况
- 迭代:有序遍历,较复杂
- 修剪二叉搜索树(opens new window)
- 递归:前序,通过递归函数返回值删除节点
- 迭代:有序遍历,较复杂
- 构造二叉搜索树(opens new window)
- 递归:前序,数组中间节点分割
- 迭代:较复杂,通过三个队列来模拟
二,总结篇
二叉树专题汇聚为一张图: