leetcode24 兩兩交換鍊錶中的節點

2021-09-09 06:29:03 字數 984 閱讀 1586

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

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

說明:你的演算法只能使用常數的額外空間。

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

注意while裡tmp1和tmp2已經交換了,所以node=tmp1:

# definition for singly-linked list.

class

listnode

:def

__init__

(self, x)

: self.val = x

self.

next

=none

class

solution

:def

(self, head)

:"""

:type head: listnode

:rtype: listnode

"""res = listnode(0)

res.

next

= head

node = res

while node.

next

and node.

next

.next

: tmp1, tmp2 = node.

next

, node.

next

.next

tmp1.

next

= tmp2.

next

node.

next

= tmp2

tmp2.

next

= tmp1

node = tmp1 # tmp1和tmp2已經交換

return res.

next

LeetCode 24兩兩交換鍊錶的節點

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

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