連結串列初探(連結串列反轉)
阿新 • • 發佈:2018-12-14
實話說,我大學時代資料結構和演算法學得真不好,尤其是連結串列。所以今天準備整理下連結串列相關的。
為什麼要有連結串列?
我們知道陣列在記憶體中是佔有連續的空間的,但這種佔有連續空間的資料結構會造成一種記憶體空間浪費,會雜湊許多分散的記憶體空間的,所以我們需要將這些空間利用起來,那麼我們需要一種資料結構來將這些雜湊的記憶體空間利用起來,這時候就出現了連結串列這種資料結構。我們先來看看連結串列的結構:
public class ListNode{ int val; //存資料值 ListNode next; //表示指向下個節點 publicListNode(int val){ this.val=val; this.next=null; } }
連結串列的優勢和主要應用場景
連結串列的結構我們都知道了,那麼其主要的優勢是什麼呢,我們還是拿陣列來做對比,由於連結串列的這種結構,以及其在記憶體空間存在的形式,那麼其優勢就是其可擴充套件性,連結串列非常適合插入和刪除頻繁多的操作的場景了。但是連結串列(o(n))相比於陣列(o(1))來說,其查詢的效率比較低,所以其主要實用場景是:對線性表的長度或者規模難以估計;頻繁做插入刪除操作;構建動態性比較強的線性表。(引用)
連結串列相關操作
todo