题目:Given a linked list, swap every two adjacent nodes and return its head.
解题思路:这个题还是比较容易的吧,两个一组把后面的插入到前面的链表中。注意不要断链。
代码:
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public ListNode swapPairs(ListNode head) {
if(head == null)return null;
ListNode n1 = head,n2 = head.next;
ListNode dummyNode = new ListNode(-1);
dummyNode.next = head;
ListNode pre = dummyNode;
ListNode t1;
while (n1 != null && n2 != null){
t1 = n2.next;
n1.next = n2.next;
pre.next = n2;
n2.next = n1;
pre = n1;
n1 = t1;
if(t1!=null)n2 = t1.next;
}
return dummyNode.next;
}