[Lintcode]Swap Nodes in Pairs

来源:互联网 发布:cydia红包软件源 编辑:程序博客网 时间:2024/06/07 01:23

Given a linked list, swap every two adjacent nodes and return its head.


Example

Given 1->2->3->4, you should return the list as 2->1->4->3.

简单的实现题。按照描述写代码即可。


/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    /**     * @param head a ListNode     * @return a ListNode     */    public ListNode swapPairs(ListNode head) {        if(head == null) return null;        ListNode dummy = new ListNode(0);        dummy.next = head;        ListNode prev = dummy;        while(prev.next != null && prev.next.next != null) {            ListNode cur = prev.next;            ListNode tmp = prev.next.next.next;            prev.next = prev.next.next;            prev.next.next = cur;            cur.next = tmp;            prev = prev.next.next;        }        return dummy.next;    }}


0 0