二叉树理论
文档讲解:代码随想录/二叉树理论
视频讲解:视频讲解-二叉树理论
总结
二叉树的种类
- 满二叉树的每层节点都是满的,一共有2^k - 1 个节点(k表示深度);
- 完全二叉树的底部一定是从左到右连续的,且除底部之外的上层节点都是填满的;
- 满二叉树一定是完全二叉树,堆也是一个完全二叉树;
- 二叉搜索树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值,若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值,它的左、右子树也分别为二叉排序树;
- 平衡二叉搜索树的左子树和右子树的高度绝对值的差不超过1;
二叉树的存储方式
- 链性存储:指针连接左右子节点
- 线性存储:用数组保存二叉树,左子节点2i+1,右子节点2i+2;
遍历方式
-
深度优先遍历:前中后序遍历,一般用递归实现,也可以用迭代法
-
广度优先遍历 :层序遍历,一般用迭代法
二叉树递归遍历
文档讲解:代码随想录/二叉树递归遍历
视频讲解:视频讲解-二叉树递归遍历
状态:已完成(1遍)
总结
- 确定递归函数的参数和返回值;
- 确定终止条件;
- 确定单层递归的逻辑。