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; } |
沒有留言:
張貼留言