Day78 | 灵神 | 反转链表 两两交换链表中的节点
Day78 | 灵神 | 反转链表 两两交换链表中的节点
24.两两交换链表中的节点
思路:
这道题就是下面这道题的k==2的情况
基本思路和92. 反转链表 II - 力扣(LeetCode)一样
用第一个例子[1,2,3,4,5]作为说明,就是说,步骤为
1.建立虚拟头结点t,作为要反转部分[1,2]的前一个节点,以后每反转一部分都要更新和保存反转部分的前一个节点
2.再次建立一个临时节点q保存要反转部分的后一个结点[3]
3.建立两个指针指向要交换的两个节点,cur指向2,pre指向1
4.反转指针把2指向1
5.把反转部分接到原来链表上
- 5.1 [1]的next即pre的next指向[3],即q,这是把后面接好了
- 5.2 虚拟头结点t的next指向[2],即cur,这是把前面接好了
6.更新并保存t,把t更新为1,即pre,因为pre是下一段要反转部分[3,4]的前一个节点
完整代码:
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Darlingの妙妙屋!
评论