第2课:二叉树入门
进度 0/24
🌿
二叉树入门
最多两个孩子,规则简单能量巨大!
📖知识引入
🌿二叉树定义
每个节点最多有两个孩子,分别叫左孩子和右孩子
🏗️struct TreeNode
val存节点值,left和right两个指针存左右孩子
🧱满二叉树
每一层都塞得满满的,第k层最多有2的k次方个节点
📐完全二叉树
只在最后一层允许从右往左缺位,它是堆的底子
💡
左孩子和右孩子是有顺序的,左右互换一下就是一棵新的二叉树
🔍定义节点并手动建树
struct TreeNode {
int val; // 节点值
TreeNode *left, *right; // 左右孩子指针
TreeNode(int v) : val(v), left(nullptr), right(nullptr) {}
};
// 手动搭建一棵 3 个节点的二叉树
// 1
// / \
// 2 3
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);用struct定义二叉树节点,再用指针把节点一颗颗连起来。
🎯小测验
第1题:二叉树每个节点最多有几个孩子?
第2题:一棵3层且每层全满的二叉树,节点总数是多少?
第3题:满二叉树第3层(根算第1层)有几个节点?
📝本课知识点
- ✓二叉树=最多两个孩子
- ✓左孩子右孩子有序
- ✓满二叉树每层全满
第2课完成!继续探索下一课吧 🚀
