很多初學的小夥伴都不知道如何在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、斷開不必要指針。