給定一個鏈表疆拘,兩兩交換其中相鄰的節(jié)點,并返回交換后的鏈表寂曹。
你不能只是單純的改變節(jié)點內(nèi)部的值哎迄,而是需要實際的進行節(jié)點交換。
從第一個開始循環(huán)判斷當前節(jié)點和下一個節(jié)點是否為空有一個為空則停止隆圆,當前節(jié)點和下一個節(jié)點的值通過中間變量來交換漱挚,把當前變量指向next的next的節(jié)點,返回頭指針就可以了渺氧。
示例:
給定 1->2->3->4, 你應該返回 2->1->4->3.
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode * swapPairs(struct ListNode* head){
struct ListNode * p = head;
while(head != NULL && head->next !=NULL){
int n = head->val;
head->val = head->next->val;
head->next->val = n;
head = head->next->next;
}
return p;
}