【LeetCode】24. 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  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     struct ListNode *next;
 6  * };
 7  */
 8 struct ListNode* swapPairs(struct ListNode* head) {
 9     int flag=0,tmp=0;
10     struct ListNode* p=head;
11     while(p!=NULL){
12         if(0==flag&&p->next!=NULL){
13             tmp=p->val;
14             p->val=p->next->val;
15             flag=1;
16         }
17         else if(1==flag){
18             p->val=tmp;
19             flag=0;
20         }
21         p=p->next;
22     }
23     return head;
24 }

 

posted @ 2016-12-24 12:29  wilderness  阅读(107)  评论(0编辑  收藏  举报