使用 JavaScript 從連結串列中刪除元素
在連結串列中刪除元素非常容易。我們只需要去掉要刪除的節點,即丟棄它的引用。我們需要考慮三種情況:
- 從頭部刪除元素:在這種情況下,我們可以簡單地賦值 head = head.next。這樣,我們將失去第一個元素的引用,我們的 head 將開始指向第二個元素。
- 從尾部刪除元素:在這種情況下,我們可以簡單地將倒數第二個節點的 node.next 賦值為 null,這樣就可以從列表中刪除最後一個元素。
- 從中間刪除元素:這比較棘手。在這種情況下,我們將必須使要刪除的節點之前的節點直接指向要刪除的節點之後的節點。因此,prevNode.next = node.next 將為我們做到這一點。
現在讓我們來看一下它的示例:
現在讓我們看看如何實現它:
示例
remove(data, position = 0) { if (this.length === 0) { console.log("List is already empty"); return; } this.length--; let currNode = this.head; // Condition 1 if (position <= 0) { this.head = this.head.next; } // Condition 2 else if (position >= this.length - 1) { while (currNode.next.next != null) { currNode = currNode.next; } currNode.next = null; } // Condition 3 else { let iter = 0; while (iter < position) { currNode = currNode.next; iter++; } currNode.next = currNode.next.next; } }
您可以使用以下方法進行測試:
示例
let list = new LinkedList(); list.insert(10); list.insert(20); list.insert(30); list.remove(1); list.display(); list.insert(15, 2); list.remove(); list.display();
輸出
這將給出以下輸出:
20 -> 30 -> 30 -> 15 ->
廣告