- 基础理论
- 二叉树
- 本质上链表,有val值,left,right指针节点
- 满二叉树
- 二叉树全满
- 完全二叉树
- 先父后子,先左后右,前面的满了才到后面的
- 二叉搜索树
- 小<-大
- 平衡二叉搜索树
- 在搜索树的基础上,高度差<=1
- 遍历
- 前序
- 中在前:中左右
- 中序
- 中在中:左中右
- 后序
- 种在后:左右中
- 递归遍历
1. 递归函数的参数和类型?
2. 终止条件?
3. 单层递归函数逻辑?
- 前
```cpp
void traversel (TreeNode* cur, vector<int>& vec) {
if (!cur) return;
vec.push_back(cur->val);
traversal(cur->left, vec);
traversal(cur->right, vec);
}
```
- 后
```cpp
void traversel (TreeNode* cur, vector<int>& vec) {
if (!cur) return;
traversal(cur->left, vec);
traversal(cur->right, vec);
vec.push_back(cur->val);
}
```
- 中
```cpp
void traversel (TreeNode* cur, vector<int>& vec) {
if (!cur) return;
traversal(cur->left, vec);
vec.push_back(cur->val);
traversal(cur->right, vec);
}
```