* 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,你應該返...