标签:
Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->4, you should return the list as 2->1->4->3. Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
这道题考验链表的遍历, 切记要加上一个dummy head, 并且区分index的单偶数,不难
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode swapPairs(ListNode head) { ListNode dummy=new ListNode(0); dummy.next=head; ListNode pd=dummy; int i=1; while(pd!=null){ if(i%2 != 0){ if(pd.next != null && pd.next.next != null){ ListNode temp1 = pd.next.next.next; ListNode temp2 =pd.next; pd.next=pd.next.next; pd.next.next=temp2; pd.next.next.next=temp1; } } pd=pd.next; i++; } return dummy.next; } }
标签:
原文地址:http://www.cnblogs.com/incrediblechangshuo/p/5453656.html