题目描述
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
给定 1->2->3->4, 你应该返回 2->1->4->3.
思路梳理
设定dummy节点没记录答案之前的节点。
设置节点指针 pre,指向当前所交换节点对的前一个元素。
- 先将欲交换节点 取出,如节点 2;(t = pre.next.next)
- 将 节点 1.next 设为节点3;(pre.next.next = t.next)
- 将节点 2 插入节点 1 的前面,即 节点2.next=节点1,pre.next = 节点2
( t.next = pre.next pre.next = t ) - 更新 pre = 节点1。(pre = t.next)