题目描述
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
进阶:如果不能修改结点值,怎么实现?
样例描述
输入:head = [1,2,3,4]
输出:[2,1,4,3]
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {
}
* ListNode(int val) {
this.val = val; }
* ListNode(int val, ListNode next) {
this.val = val; this.next = next; }
* }
*/
思路
- 如果修改结点值进行交换的话,设置一个工作指针,每当指针指向第偶数个结点时就与前面的交换。
- 特判为空或者只有一个的情况
若不能修改结点值: