链表:
- 203.移除链表元素
- 707.设计链表
- 206.反转链表
- 24.两两交换链表中的节点
- 19.删除链表倒数第N个节点
206.反转链表:
核心在于NULL的处理上:
假设原链表为1-2-3-NULL,则反转后的链表应为3-2-1-NULL
对于原本为头结点的1,其反转后next域也应该为NULL
思路:新建一条带虚拟头结点的链表然后一边遍历一边头插就可以了!
24.两两交换链表中的节点
1.用虚拟头节点!so easy!
2.交换节点用三个临时节点即可,pre→left→right
3.依然是针对right,right.next是否为null的边界讨论
19.删除链表倒数第N个节点
一些双指针的经典应用:
如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了