[LeetCode] #24 兩兩交換連結串列中的節點
阿新 • • 發佈:2021-10-11
[LeetCode] #24 兩兩交換連結串列中的節點
給定一個連結串列,兩兩交換其中相鄰的節點,並返回交換後的連結串列。
你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。
輸入:head = [1,2,3,4]
輸出:[2,1,4,3]
遞迴
class Solution { public ListNode swapPairs(ListNode head) { if(head == null || head.next == null) return head; ListNode temp = head.next; head.next = swapPairs(temp.next); temp.next= head; return temp; } }
迭代
class Solution { public ListNode swapPairs(ListNode head) { ListNode dummyHead = new ListNode(0, head); ListNode temp = dummyHead; while (temp.next != null && temp.next.next != null) { ListNode node1 = temp.next; ListNode node2= temp.next.next; temp.next = node2; node1.next = node2.next; node2.next = node1; temp = node1; } return dummyHead.next; } }
知識點:無
總結:無