【LeetCode 24】两两交换链表中的节点
【题解】
简单的链表操作【代码】
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
ListNode * ttemp = new ListNode(0);
ListNode *temp = ttemp;
temp->next = head;
while (1){
ListNode *p1 = temp->next;
if (p1==NULL) break;
ListNode *p2 = p1->next;
if (p2==NULL) break;
p1->next = p2->next;
p2->next = p1;
temp->next = p2;
temp = p1;
}
return ttemp->next;
}
};