← 返回课程列表
算法通关训练营 · 线性结构篇(链表:指针的艺术)(已并入旗舰课 469)

算法通关训练营 · 线性结构篇(链表:指针的艺术)(已并入旗舰课 469)

本课已并入《算法通关旗舰课:从链表到排序的 30 讲完整路径》(30 讲完整路径一条走完)。原付费学员仍可继续访问,建议前往 算法通关旗舰课 体验完整体系。

课程简介

这是必学必会「算法」科目的线性结构专题课,对应缺口体系 C 系列(线性表与链式结构)。从链表的节点与指针讲起,带你手写单链表、双向链表、循环链表的增删查改,再攻克反转、快慢指针、哨兵节点等经典技巧,最后用 LRU 缓存与约瑟夫环把知识落到真实系统。每一节都配知识单元 + 实战题。

学习目标

  • 能说清数组与链表的核心差异及各自的适用场景
  • 能手写单 / 双 / 循环链表的插入、删除、遍历,并规避"断链"错误
  • 掌握反转、快慢指针、哨兵节点等链表经典技巧
  • 理解链表在 LRU 缓存、浏览器历史、操作系统调度中的真实应用

章节概览

  1. 第1节 链表基础:节点、指针与遍历(本节,缺口 C3)
  2. 第2节 单链表增删与哨兵节点(缺口 C3 延伸)
  3. 第3节 双向链表与循环链表(缺口 C3)
  4. 第4节 经典技巧:反转与快慢指针(缺口 C7)
  5. 第5节 实战:LRU 缓存与约瑟夫环(工程综合)
---
线性结构家族:从数组到链表,再延伸到树与图数组(连续内存)单链表双向链表循环链表单链表 → 二叉搜索树 (C5)双向链表 → LRU / 调度循环链表 → 约瑟夫环链表是数组之外最基础的线性结构,也是树、图、缓存的底层骨架

图:算法通关训练营·线性结构篇的知识延伸地图

参考代码(Python)

链表最该亲手写熟的就是节点定义与指针改向,下面给出单链表的核心骨架:

class Node:
    def __init__(self, val):
        self.val = val
        self.next = None

def traverse(head):
    cur = head
    while cur is not None:
        print(cur.val); cur = cur.next

def insert_after(p, val):
    new = Node(val)
    new.next = p.next   # 先接后面,避免断链
    p.next = new

def delete_after(p):
    if p.next is not None:
        p.next = p.next.next

注意 insert_after 的顺序:务必先 new.next = p.nextp.next = new,否则后半条链会丢失。

算法通关训练营 · 线性结构篇(链表:指针的艺术)(已并入旗舰课 469) | 必学必会