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