1.题目
两两交换链表中相邻的元素
2.示例
输入:1->2->3->4
输出:2->1->4->3
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; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
if(head==null)
{
return head;
}
ListNode pre=head;
ListNode next=head.next;
ListNode tmp=null;
ListNode newHead=next==null?head:next;
while(next!=null)
{
pre.next=next.next;
next.next=pre;
if(tmp!=null)
{
tmp.next=next;
}
tmp=pre;
if(pre.next==null)
{
break;
}
pre=pre.next;
//节点就已经指向下一个了
next=pre.next;
}
return newHead;
}
}