Leetcode-Swap Nodes in Pairs

一、題目——Swap Nodes in Pairs

Given a linked list, swap every two adjacent nodes and return its head.

For example,

Given1->2->3->4, you should return the list as2->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ù)題目的意思,就是每對節(jié)點(diǎn)兩兩交換。注意是交換節(jié)點(diǎn),而不是交換節(jié)點(diǎn)的值。那么交換兩個節(jié)點(diǎn)時,我們得讓第一個節(jié)點(diǎn)的前一個節(jié)點(diǎn)的next指向第二個節(jié)點(diǎn),第二個節(jié)點(diǎn)的下一個節(jié)點(diǎn)的next指向第一個節(jié)點(diǎn)。然后讓第二個節(jié)點(diǎn)的next指向第一個節(jié)點(diǎn)。臨界狀態(tài),即第一個節(jié)點(diǎn)是頭結(jié)點(diǎn)。那我們就得相應(yīng)做些特殊的處理,讓第二個節(jié)點(diǎn)成為頭結(jié)點(diǎn)。思路如上,上代碼。


三、代碼


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容