🐵指尖猴全新升级
第7课:单链表的概念
🔗

单链表的概念

用指针串起珍珠项链,开启链表之旅!

📖知识引入

📿链表是什么
一个个节点用指针串起来的序列,像寻宝游戏:每个线索指向下一站
🏃顺序访问
想找第3个节点必须从头顺着next走过去,不能一步跳达
⚔️与数组过招
数组查找快插入慢,链表插入删除快查找慢,各有主场
💾存储方式
链表节点在内存中东一个西一个,靠指针维系关系,不要求连续
💡
信奥口诀:查得多用数组,改得多用链表,按操作频率选武器

🔍数组和链表找第3个元素

// 数组:下标一步到位,O(1)
cout << a[2];

// 链表:从头顺着next走两步,O(n)
Node* p = head;        // 从头节点出发
for (int i = 0; i < 2; i++) {
    p = p->next;       // 顺指针往后走
}
cout << p->val;        // 到达第3个节点

数组像电梯直达,链表像逐层爬楼梯,取舍就在这里

🎯小测验

第1题:链表查找第k个元素的时间复杂度是?

第2题:链表节点在内存中的分布特点是?

第3题:下列哪种操作链表比数组更擅长?

📝本课知识点

  • ✓链表=节点+指针串联
  • ✓查找慢是链表的代价
  • ✓插入删除快是链表的骄傲
第7课完成!继续探索下一课吧 🚀