問題簡介:
給定鍊錶,反轉鍊錶中每k個節點並返回其修改後的鍊錶.
注:k是正整數,如果節點數不是k的倍數,那麼最後的剩餘節點應該保持不變.
舉例:給定的鍊錶: 1->2->3->4->5
當 k = 2, 輸出: 2->1->4->3->5
當 k = 3, 輸出: 3->2->1->4->5
鍊錶結構:
// definition for singly-linked list.
public class listnode
}
解法一:
當k=1為輸入鍊錶本身,當k大於鍊錶即返回鍊錶本身,將鍊錶新增到集合中,每k個元素進行擷取反轉並新增到新集合中,將新集合輸入到結果鍊錶中
class solution
listresult = new arraylist<>();
for(int i = 0;ilength )else
}listnode listnode = new listnode(0);
listnode ln = listnode;
for(int j=0;j複雜度分析:
時間複雜度:o(n)都是單層遍歷
空間複雜度:o(n)最大為n次定義集合元素
注:list list = new arraylist();
1.擷取list的一部分:
list result = list.sublist(1,n)
擷取的是list集合中索引1到n-1的值,數學中的左閉右開,[1,n)
2.集合list的反轉
collections.reverse(list)
小白刷題之路,請多指教— — 要麼大器晚成,要麼石沉大海
劍指offer第二十五題
題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 思路 1 在原來的鍊錶每個節點後面新增乙個節點,該節點下面連線著原來節點的下乙個...
第二十五天
程序 資源分配的最小單元 程序的組成 程式 資料和程序控制塊 pcb 所有的排程都是提前準備的 程序的經典三態 執行 就緒 等待 父程序的id ppid 啟動程序的使用者id uid 排程演算法 1.先來先服務 2.短程序優先 3.高優先順序優先 4.時間片輪轉法 一般都是用這個 先來先服務演算法的...
第二十五天
學會了final的相關使用方法 明天學習abstract關鍵字 一 final關鍵字 final關鍵字是最終的意思,使用final修飾類,代表該類不能被繼承。final修飾方法表示該方法不能被重寫。final修飾變數,代表該變數是常量 1 final方法 使用final修飾方法時,該方法不能被重寫,...