轉 鍊錶中節點每k個一組反轉

2022-02-12 17:29:13 字數 1343 閱讀 8576

* definition for singly-linked list.

* public class listnode

* } */

class

solution

//定義乙個假的節點。

listnode dummy=

new listnode(

0);//假節點的next指向head。

// dummy->1->2->3->4->5

dummy.next=head;

//初始化pre和end都指向dummy。pre指每次要翻轉的鍊錶的頭結點的上乙個節點。end指每次要翻轉的鍊錶的尾節點

listnode pre=dummy;

listnode end=dummy;

while(end.next!=

null)

//如果end==null,即需要翻轉的鍊錶的節點數小於k,不執行翻轉。

if(end==

null)

//先記錄下end.next,方便後面鏈結鍊錶

listnode next=end.next;

//然後斷開鍊錶

end.next=

null;

//記錄下要翻轉鍊錶的頭節點

listnode start=pre.next;

//翻轉鍊錶,pre.next指向翻轉後的鍊錶。1->2 變成2->1。 dummy->2->1

pre.next=reverse(start);

//翻轉後頭節點變到最後。通過.next把斷開的鍊錶重新鏈結。

start.next=next;

//將pre換成下次要翻轉的鍊錶的頭結點的上乙個節點。即start

pre=start;

//翻轉結束,將end置為下次要翻轉的鍊錶的頭結點的上乙個節點。即start

end=start;

}

return dummy.next;

}

//鍊錶翻轉

// 例子: head: 1->2->3->4

public listnode reverse(listnode head)

//前乙個節點指標

listnode prenode =

null;

//當前節點指標

listnode curnode = head;

//下乙個節點指標

listnode nextnode =

null;

while (curnode !=

null)

return prenode;

}}

程式設計題 每K個一組反轉鍊錶

反轉鍊錶的高階版。給出乙個鍊錶,每 k 個節點一組進行翻轉,並返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼將最後剩餘節點保持原有順序。public static listnode reverselist listnode head,int k ...

每k個一組反轉鍊錶 python版

給出乙個鍊錶,每 k 個節點一組進行翻轉,並返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼將最後剩餘節點保持原有順序。說明 你需要自行定義鍊錶結構,將輸入的資料儲存到你的鍊錶中 你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換 你的演...

鍊錶中的節點每k個一組翻轉

題目描述 將給出的鍊錶中的節點每 k 個一組翻轉,返回翻轉後的鍊錶 如果鍊錶中的節點數不是 k 的倍數,將最後剩下的節點保持原樣 你不能更改節點中的值,只能更改節點本身。要求空間複雜度 o 1 例如 給定的鍊錶是1 2 3 4 5 對於 k 2 你應該返回 2 1 4 3 5 對於 k 3,你應該返...