演算法 鍊錶反轉和鍊錶內指定區間反轉

2021-10-11 18:36:55 字數 752 閱讀 9559

鍊錶反轉

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

例如:輸入,返回。

public listnode reverse (listnode head)

return temp;

}

鍊錶內指定區間反轉

將乙個鍊錶 m 位置到 n 位置之間的區間反轉,要求時間複雜度o(n) ,空間複雜度o(1) 。

例如:給出的鍊錶為 1 → 2 → 3 → 4 → 5 → null,1→2→3→4→5→null,m=2,n=4,

返回 1 → 4 → 3 → 2 → 5 → null。

注意:給出的 滿足以下條件:1 ≤ m ≤ n ≤ 鍊錶長度。

//鍊錶內指定區間反轉

public listnode reversebetween (listnode head,

int m,

int n)

if(count >= m && count <= n)

temp.next = pre;

pre = temp;

if(count == n)

} node = node.next;

} currfirst.next = temp;

currlast.next = last;

return tempfirst.next;

}

NC21 鍊錶內指定區間反轉

將乙個鍊錶m位置到n位置之間的區間反轉,要求時間複雜度為o n o n o n 空間複雜度為o 1 o 1 o 1 例如 給出的鍊錶為1 2 3 4 5 null,返回1 4 3 2 5 null 方法一 迭代法 將n位置之前的元素逐步插入到n元素之後 struct listnode class s...

演算法 反轉單向鍊錶和雙向鍊錶

分別實現反轉單向鍊錶和雙向鍊錶的函式。如果鍊錶長度為n,時間複雜度為o n 額外空間複雜度要求為o 1 反轉單向鍊錶 public class nodepublic int value public node next public static node reverselist node node...

演算法 反轉鍊錶

編寫帶 實現反轉單鏈表。如 1,2,3,4,5 變為 5,4,3,2,1 要求空間複雜度為o 1 先直接給出乙份完整的 可以直接執行。c include include include typedef int datatype 鍊錶持有的資料的型別 typedef struct node 結點的定義...