🐵指尖猴全新升级
第2课:二叉树入门
🌿

二叉树入门

最多两个孩子,规则简单能量巨大!

📖知识引入

🌿二叉树定义
每个节点最多有两个孩子,分别叫左孩子和右孩子
🏗️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课完成!继续探索下一课吧 🚀