LeetCode第二十五題 反轉鍊錶中k組節點

2021-09-20 06:14:22 字數 872 閱讀 3592

問題簡介:

給定鍊錶,反轉鍊錶中每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修飾方法時,該方法不能被重寫,...