मान लीजिए, हमारे पास इस तरह एक सिंगल लिंक्ड लिस्ट है -
const list = { value: 1, next: { value: 2, next: { value: 3, next: { value: 4, next: { value: 5, next: { value: 6, next: { value: 7, next: null } } } } } } };
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो एक ऐसी सूची को पहले तर्क के रूप में और एक संख्या को दूसरे तर्क के रूप में लेता है।
फ़ंक्शन को यह खोजना चाहिए कि सूची में उस मान के साथ कोई नोड मौजूद है या नहीं, यदि ऐसा होता है, तो फ़ंक्शन को सूची से नोड को हटा देना चाहिए।
उदाहरण
इसके लिए कोड होगा -
const list = { value: 1, next: { value: 2, next: { value: 3, next: { value: 4, next: { value: 5, next: { value: 6, next: { value: 7, next: null } } } } } } }; const recursiveTransform = (list = {}) => { if(list && list['next']){ list['value'] = list['next']['value']; list['next'] = list['next']['next']; return recursiveTransform(list['next']); }else{ return true; }; } const removeNode = (list = {}, val, curr = list) => { // end reached and item not found if(!list){ return false; } if(list['value'] !== val){ return removeNode(list['next'], val, list); }; return recursiveTransform(list); }; console.log(removeNode(list, 3)); console.log(JSON.stringify(list, undefined, 4));
आउटपुट
और कंसोल में आउटपुट होगा -
true { "value": 1, "next": { "value": 2, "next": { "value": 4, "next": { "value": 6, "next": { "value": 7, "next": null } } } } }