LeetCode-024-兩兩交換鏈表中的節(jié)點

題目描述:給定一個鏈表,兩兩交換其中相鄰的節(jié)點,并返回交換后的鏈表。
你不能只是單純的改變節(jié)點內(nèi)部的值,而是需要實際的進(jìn)行節(jié)點交換。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/ ??
解法一:雙指針法
首先,如果head為空或者h(yuǎn)ead沒有后繼節(jié)點,直接返回head;
然后用2個指針first和second分別指向第一個和第二個節(jié)點,new一個pre節(jié)點指向first,操作過程如下:
first的next指向second的next;
second的next指向first;
pre的next指向second;
前面幾步就是把first和second的位置交換;
然后pre指向first;
first指向first的next;
然后進(jìn)行下一次遍歷,條件是first不為空且first的next不為空,直到這個條件不成立,則遍歷結(jié)束。
返回結(jié)果。
【每日寄語】 宇宙山河浪漫,生活點滴溫暖,都值得你我前進(jìn)。