交換鍊錶中的節點 24 25

2022-07-30 18:18:12 字數 1424 閱讀 8966

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

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

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

1

public

class

t24

7 listnode dummy = new listnode(-1);

8 dummy.next =head;

9 listnode pre =dummy;

1011

12while (head != null && head.next != null

) 27

return

dummy.next;

2829

}30 }

給你乙個鍊錶,每 k 個節點一組進行翻轉,請你返回翻轉後的鍊錶。

k 是乙個正整數,它的值小於或等於鍊錶的長度。

如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。

示例:給你這個鍊錶:1->2->3->4->5

當 k = 2 時,應當返回: 2->1->4->3->5

當 k = 3 時,應當返回: 3->2->1->4->5

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

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

1

public

class

t25

12if (end == null

) 15

//複製出 start 和 next,即將被覆蓋

16 listnode start =pre.next;

17 listnode next =end.next;

18 end.next = null;19

20//

反轉 + 前驅節點拼接 start位址不變,但是其next指標更換為null

21 pre.next =reverse(start);

22//

end + 後驅節點

23 start.next =next;

2425

//更新pre和end

26 pre =start;

27 end =pre;

2829}30

return

dummy.next;31}

3233

private

listnode reverse(listnode start)

41return

dummy.next;42}

43 }

LC 交換鍊錶節點

將給定的鍊錶中每兩個相鄰的節點交換一次,返回鍊錶的頭指標 例如,給出1 2 3 4,你應該返回鍊錶2 1 4 3。你給出的演算法只能使用常量級的空間。你不能修改列表中的值,只能修改節點本身。struct listnode class solution listnode phead newlistno...

兩兩交換鍊錶中的節點

給乙個鍊錶,兩兩交換其中的節點,然後返回交換後的鍊錶。樣例 給出 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...