演算法學習 反轉鍊錶

2021-08-01 21:32:11 字數 529 閱讀 9666

輸入乙個鍊錶的頭結點,將這個鍊錶反轉並輸出它的新的頭結點

/*

public class listnode

}*///方法一:

public

class solution

}h1.next = null;

return head;

}}//方法二:**(其實我寫的這兩個差不多,為什麼要寫相似的兩個?因為我要學習區別使用p和p.next的區別)**

public

class solution //把第一次頭結點指向第二個節點的next域清空

head = p;//將頭結點移向新接入的節點上

p = q;//將q指向未加入反轉列表的臨時頭節點引用

// flag = false;//將標示量變為false,後續不需要將next域置空,為了優化程式把它挪到上邊if中去

}

return head;//返回頭結點

}}

演算法學習之鍊錶反轉

摘要 鍊錶逆轉是面試環境中經常遇到的一道題目,也是我們在實際開發中可能會遇到的開發需求。和線性逆轉不一樣,單向鍊錶的節點需要乙個乙個進行處理。有需要的朋友可以看一下,如果有沒考慮周全的地方歡迎指正。為了顯示兩者之間的區別,我們分別對線性記憶體和鍊錶進行逆 status normal revert i...

演算法學習之路 反轉鍊錶

給定乙個常數k以及乙個單鏈表l,請編寫程式將l中每k個結點反轉。例如 給定l為1 2 3 4 5 6,k為3,則輸出應該為3 2 1 6 5 4 如果k為4,則輸出應該為4 3 2 1 5 6,即最後不到k個元素不反轉。輸入格式 每個輸入包含1個測試用例。每個測試用例第1行給出第1個結點的位址 結點...

演算法學習 2 4 鍊錶

前言 在儲存一大波數的時候我們通常用的是陣列,但有時候陣列顯得不太靈活 例如 從小到大排好的一串數字 2 3 5 8 9 10 18 26 32,我們要插入6使得其順序依然不變,如果用陣列的話就要讓8以及8往後的數都要往後挪一位,很浪費時間,但如果用鍊錶操作只需要將5的指標指向6的指標,再將6的指標...