2016年2月24日 星期三

LEET code -- Swap Nodes in Pairs

 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.



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* swapPairs(struct ListNode* head) {
    if(head==NULL)return NULL;
    struct ListNode *Current=head, *Next=head->next;
    
    while(Next!=NULL&&Current!=NULL){
        int temp=Next->val;
        Next->val=Current->val;
        Current->val=temp;
        Current=Next->next;
        if(Current!=NULL)Next=Current->next;
    }
    return head;
    
}




沒有留言:

張貼留言