鏈表:Java中鏈表定義--單向鏈表與雙向鏈表

很多初學的小夥伴都不知道如何在Java中自定義鏈表,今天它來了,Java的核心就是面向對象編程,因此我們可以把鏈表看成一個對象。

單向鏈表定義

我們可以定義一個類,ListNode,屬性next(下一節點的引用),value(存儲當前節點的值)單鏈表定義如下:

class ListNode {
    int val;
    ListNode next;//引用指向下一節點
    ListNode(int x) {
        val = x;
        this.next = null;
    }
}

單向鏈表創建

鏈表就是多個對象之間引用起來,new出頭結點後,把頭結點的next引用新的節點即可完成鏈表創建,實際上鍊表就是多個鏈表對象串聯起來

ListNode head = new ListNode(0);
head.next = new ListNode(1);

雙向鏈表定義

也是創建一個對象,雙向鏈表與單向鏈表的區別就是當前節點可以指向前一個節點,同理存在一個prev引用,因此優勢在於可以從後向前遍歷鏈表。

class ListNode {
    int val;
    ListNode next;
    ListNode prev;
    ListNode(int x) {
        val = x;
        this.prev = null;
        this.next = null;
    }
}

雙向鏈表的創建

雙向鏈表創建時與單向鏈表一致,每個節點next引用下一個節點,同時當前節點prev引用前一個節點。

ListNode head = new ListNode(0);
ListNode curr = new ListNode(1);
head.next = curr;
curr.prev = head;

鏈表使用注意事項

1、一定檢查null,防止空指針,

2、一定要防止環形出現,節點被多次使用,一定要備份,

3、斷開不必要指針。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章