24. Swap Nodes in Pairs
創(chuàng)新互聯(lián)建站專注于信州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城建設(shè)。信州網(wǎng)站建設(shè)公司,為信州等地區(qū)提供建站服務(wù)。全流程按需求定制開(kāi)發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
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.
題目大意:
交換每?jī)蓚€(gè)節(jié)點(diǎn)的位置。
代碼如下:
/** * 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* left,*right,*pre,*p; pre = NULL;//記錄每?jī)蓚€(gè)節(jié)點(diǎn)前面的那個(gè)節(jié)點(diǎn) p = head; while(p !=NULL && p->next != NULL) { left = p; right = p->next; left->next = right->next; right->next = left; if(pre != NULL) { pre->next = right; } else//鏈表的頭兩個(gè)節(jié)點(diǎn)交換位置 { head = right; } pre = left; p = left->next; } return head; } };
2016-08-12 23:51:00