ধরুন, আমাদের এইরকম একটি এককভাবে লিঙ্ক করা তালিকা আছে −
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 } } } } }