Leetcode K個一組反轉鍊錶C 實現

2021-09-26 06:06:06 字數 733 閱讀 8195

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

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

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

採用了棧來完成,遍歷整個鍊錶,並將結點逐個存入棧中,當棧中存放結點數量=k時,將棧中元素依次彈出,建立乙個新的鍊錶。值得注意的是,當最後剩下的數不足k個時,此時雖然剩下結點全都在棧中,但還是要將其逆序,彈入另外乙個棧中,然後再彈出。

/

*** definition for singly-linked list

.* struct listnode *}

;*/class

solution

if(ireturn head;

stack> s;

listnode* p = head;

while

(s.size(

)!=k)

listnode* phead = s.top();

s.pop();

listnode* p2 = phead;

while

(!s.empty())

while

(p!=null)}}

if(!s.empty())

while

(!s2.empty())

}return phead;}}

;

leetcode k個元素一組反轉鍊錶

搞3個指標即可,分別指向當前處理的節點,當前處理節點的前乙個節點,當前處理節點的下乙個節點。下一節點在進入迴圈之前已經設定了,不是空的。class solution current next pre return current 下一節點在進入迴圈前設定為空,每次進入迴圈之後才設定為當前節點的下一節...

LeetCode k個一組翻轉鍊錶

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

LeetCode k個一組翻轉鍊錶

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