forked from changqing16/LeetCode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path24.cpp
More file actions
37 lines (33 loc) · 736 Bytes
/
24.cpp
File metadata and controls
37 lines (33 loc) · 736 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <vector>
using namespace std;
struct ListNode
{
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode *swapPairs(ListNode *head)
{
if (head == NULL || head->next == NULL)
return head;
ListNode *first, *second, *pre;
ListNode *nHead = new ListNode(1);
nHead->next = head;
pre = nHead;
while (pre->next != NULL)
{
first = pre->next;
if (first->next != NULL)
{
second = first->next;
pre->next = second;
first->next = second->next;
second->next = first;
pre = first;
}
else
return nHead->next;
}
return nHead->next;
}