大家好,我是Ryan。这篇文章来记录我学习链表相关基础知识。
先介绍一个概念:虚拟节点
虚拟节点通常写作dummyNode,其next指针指向head,其val值不会被使用,方便处理首节点。
链表的插入和删除有三种情况:
- 头部
插入一个节点newNode时,先让newNode.next = head,再让head = newNode就好了
删除时只需将head = head.next
- 中间
在中间删除时需要让node 的前驱节点的next等于node.next
插入时创建一个临时节点node。
node = leftNode.next;
leftNode.next = newNode;
newNode.next = node;
- 尾部
删除时只需将前驱节点的next指向null。
插入时也只需将尾节点的Next = newNode。