लिंक्ड लिस्ट से एक एलिमेंट हटाना बहुत आसान है। हमें बस उस नोड से छुटकारा पाना है जिसे हम हटाना चाहते हैं, यानी उसका संदर्भ खो देना। हमें 3 मामलों पर विचार करने की आवश्यकता है:
- हेड से एलिमेंट हटाना: इस मामले में, हम बस
head = head.nextअसाइन कर सकते हैं। इस तरह हम पहले एलिमेंट का संदर्भ खो देंगे। और हमारा हेड दूसरे एलिमेंट की ओर इंगित करना शुरू कर देगा। - टेल से एलिमेंट हटाना: इस मामले में, हम बस सेकंड लास्ट नोड के
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; // स्थिति 1 if (position <= 0) { this.head = this.head.next; } // स्थिति 2 else if (position >= this.length - 1) { while (currNode.next.next != null) { currNode = currNode.next; } currNode.next = null; } // स्थिति 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 ->