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

題目描述:給定一個鏈表,兩兩交換其中相鄰的節(jié)點,并返回交換后的鏈表。你不能只是單純的改變節(jié)點內(nèi)部的值,而是需要實際的進行節(jié)點交換。

示例:給定 1->2->3->4, 你應該返回 2->1->4->3.

java代碼

非遞歸方法:

class Solution {

? ? public ListNode swapPairs(ListNode head) {

? ? ? ? ListNode pre = new ListNode(0);

? ? ? ? pre.next = head;

? ? ? ? ListNode temp = pre;

? ? ? ? while(temp.next != null && temp.next.next != null) {

? ? ? ? ? ? ListNode start = temp.next;

? ? ? ? ? ? ListNode end = temp.next.next;

? ? ? ? ? ? temp.next = end;

? ? ? ? ? ? start.next = end.next;

? ? ? ? ? ? end.next = start;

? ? ? ? ? ? temp = start;

? ? ? ? }

? ? ? ? return pre.next;

? ? }

}

遞歸方法:

class Solution {

? ? public ListNode swapPairs(ListNode head) {

? ? ? ? if(head == null || head.next == null)

? ? ? ? ? ? return head;

? ? ? ? ListNode next = head.next;

? ? ? ? head.next = swapPairs(next.next);

? ? ? ? next.next = head;

? ? ? ? return next;

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容