25 K 個一組翻轉鍊錶

2021-10-21 19:30:34 字數 928 閱讀 1851

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

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

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

高階:你可以設計乙個只使用常數額外空間的演算法來解決此問題嗎?

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

示例 1:

輸入:head = [1,2,3,4,5], k = 2

輸出:[2,1,4,3,5]

示例 2:

輸入:head = [1,2,3,4,5], k = 3

輸出:[3,2,1,4,5]

示例 3:

輸入:head = [1,2,3,4,5], k = 1

輸出:[1,2,3,4,5]

示例 4:

輸入:head = [1], k = 1

輸出:[1]

/**

* definition for singly-linked list.

* public class listnode

* listnode(int val)

* listnode(int val, listnode next)

* }*/class

solution

listnode newnode =

reverse

(a,b)

; a.next =

reversekgroup

(b,k)

;return newnode;

}public listnode reverse

(listnode a,listnode b)

//返回反轉後的頭節點

return pre;

}}

25 k個一組翻轉鍊錶

給出乙個鍊錶,每 k 個節點一組進行翻轉,並返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼將最後剩餘節點保持原有順序。示例 給定這個鍊錶 1 2 3 4 5 當 k 2 時,應當返回 2 1 4 3 5 當 k 3 時,應當返回 3 2 1 4 ...

25 K 個一組翻轉鍊錶

題目.有意思可以拆解為3個子問題 另外變數和邏輯比較多容易搞混,最好多定義幾個臨時變數 package main import fmt type listnode struct func printlist root listnode fmt.println func reverse head li...

25 K 個一組翻轉鍊錶

給你乙個鍊錶,每 k 個節點一組進行翻轉,請你返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。示例 給你這個鍊錶 1 2 3 4 5 當 k 2 時,應當返回 2 1 4 3 5 當 k 3 時,應當返回 3 2 1...