मान लीजिए, हमारे पास एक एकल लिंक्ड सूची है जैसे -
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) => {
// अंत तक पहुंच गए और आइटम नहीं मिला
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
}
}
}
}
}