兩兩交換鍊錶中的節點

2021-10-06 04:26:56 字數 1228 閱讀 6020

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

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

給定 1->2->3->4, 你應該返回 2->1->4->3
對於四個節點的鍊錶(交換a,b節點時的變化步驟):

s -> a -> b -> e

s -> b -> e a -> b -> e

s -> b -> e a -> e

s -> b -> a -> e

更新s節點

#

## [24] 兩兩交換鍊錶中的節點

## @lc code=start

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

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

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

# 示例:

# 給定 1->2->3->4, 你應該返回 2->1->4->3.

class solution:

# 開頭加乙個-1節點

start = listnode(-1)

# 接入原鍊錶

start.next = head

# s表示變換時的開頭

s = start

while s.next and s.next.next:

# s -> a -> b -> e

a = s.next

b = a.next

# 把s.next.next接入到s後面

# s -> b -> e

s.next = b

# b.next接入到a後面

# a -> e

a.next = b.next

# a接入到b後面

# s -> b -> a -> e

b.next = a

# 從a再開始

# s -> e

s = a

return start.next

# @lc code=end

兩兩交換鍊錶中的節點

給乙個鍊錶,兩兩交換其中的節點,然後返回交換後的鍊錶。樣例 給出 1 2 3 4,你應該返回的鍊錶是 2 1 4 3。遞迴方式 交換p 和 p.next 結點 swaphead p.next swaphead.next p definition for singly linked list.publ...

兩兩交換鍊錶中的節點

給乙個鍊錶,兩兩交換其中的節點,然後返回交換後的鍊錶。給出1 2 3 4,你應該返回的鍊錶是2 1 4 3。首先這個鍊錶只能交換偶數個資料,如果有奇數個資料則最後乙個資料不進行交換。做乙個迴圈將資料兩個兩個的交換,每交換完一次都要往後迭代。definition for singly linked l...

兩兩交換鍊錶中的節點

題目 給乙個鍊錶,兩兩交換其中的節點,然後返回交換後的鍊錶。樣例 給出1 2 3 4,你應該返回的鍊錶是2 1 4 3。思路 兩兩交換節點乍一看好像就是交換兩個節點的位置,仔細想一想交換的是數值,兩個一組兩個一組,只要head next不是null,或者head不是null就可以交換倆個節點的值,h...