LeetCode 24兩兩交換鍊錶的節點

2021-10-07 08:31:30 字數 729 閱讀 1667

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。

你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。

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

class

solution

listnode next = head.next;

head.next =

(next.next)

;//指向下乙個子鍊錶

next.next = head;

return next;

}}

時間複雜度:o(n),其中 n 指的是鍊錶的節點數量。

空間複雜度:o(n),遞迴過程使用的堆疊空間。

class

solution

listnode pre =

newlistnode(-

1);//哨兵,用來返回最後結果的頭結點

pre.next = head;

listnode temp = pre;

//變數,記錄指向 下乙個交換位置相鄰節點 的結點

while

(temp.next != null && temp.next.next != null)

return pre.next;

}}

時間複雜度:o(n),其中 n 指的是鍊錶的節點數量。

空間複雜度:o(1)

leetcode24 兩兩交換鍊錶中的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。示例 給定 1 2 3 4,你應該返回 2 1 4 3.說明 你的演算法只能使用常數的額外空間。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。注意while裡tmp1和tmp2已經交換了,所以node tmp1 definit...

leetcode 24 兩兩交換鍊錶中的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。示例 給定 1 2 3 4,你應該返回 2 1 4 3.複製 說明 listnode definition for singly linked list.type listnode struct func head listnode list...

LeetCode24 兩兩交換鍊錶中的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。示例 給定 1 2 3 4,你應該返回 2 1 4 3.建立乙個額外的節點來儲存下乙個節點所指向的節點,這樣就不會丟失節點 易錯點1 直接使用頭結點 return head nex...