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

2021-09-13 21:33:52 字數 943 閱讀 4521

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

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

示例:

給定 1->2->3->4, 你應該返回 2->1->4->3.
建立乙個節點dummy,然後使dummy的next指向head節點,這樣如果後續操作是否改變了鍊錶的頭節點,dummy的next都是當前實際鍊錶的頭節點。然後定義cur節點等於dummy,它用於後續操作。定義乙個節點n,指向待交換節點中的第乙個節點,並判斷這兩個待交換節點是否都不為空,只有滿足這個條件才能進入迴圈進行交換操作。進入迴圈,兩個臨時變數temp1和temp2分別指向兩個待交換節點,然後更新節點n為下乙個準備交換的位置。接下來將temp2和temp1先後連線到cur節點後面,然後進入下一次迴圈。當迴圈跳出後,將cur節點的next指向n,此時的n指向的是剩下的單個節點或null,於是操作全部完成,最後返回dummy->next。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

cur->next = n;

return dummy->next;

}};

此種做法和下一道題的做法一模一樣,只不過是「k=2」而已。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

while(num >= 2)

return dummy->next;

}};

LeetCode 24兩兩交換鍊錶的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。示例 給定 1 2 3 4,你應該返回 2 1 4 3.class solution listnode next head.next head.next next.next 指向下...

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...