带头结点 | 不带头节点 | |
---|---|---|
空 | ![]() I | ![]() II |
非空 | ![]() III | ![]() IV |
引入头结点
的好处
- 使得在链表
头
部的操作(如:插入删除等)与在链表中
部与尾
部一致(统一) - 使
非空
链表与空
链表的操作统一
//I 带头节点的单链表(空) 插入节点
s->next = H->next;
H->next = s;
//II 不带头节点的单链表(空) 插入节点
s->next = H;
H = s;
//III 带头节点的单链表(非空) 插入节点
s->next = L->next;
L->next = s;
//IV 不带头节点的单链表(非空) 插入节点
s->next = L->next;
L->next = s;