সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি লিংকড লিস্টের হেড প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটি লিস্টের মধ্যম নোডে সংরক্ষিত মান ফেরত দেবে। এবং যদি দুটি মধ্যম নোড থাকে, তবে 그중 দ্বিতীয়টি ফেরত দেবে।
উদাহরণস্বরূপ, যদি লিস্টটি এইরকম হয়:
ইনপুট
[4, 6, 8, 9, 1]
আউটপুট
const output = 8;
নিচে কোডটি দেওয়া হল:
উদাহরণ
class Node {
constructor(data) {
this.data = data;
this.next = null;
}
};
class LinkedList {
constructor() {
this.head = null;
this.size = 0;
}
};
LinkedList.prototype.add = function(data) {
const newNode = new Node(data);
let curr;
if (this.head === null) {
this.head = newNode;
} else {
curr = this.head;
while (curr.next) {
curr = curr.next;
}
curr.next = newNode;
}
this.size++;
};
const list = new LinkedList();
list.add(4);
list.add(6);
list.add(8);
list.add(9);
list.add(1);
const findMiddle = (head) => {
let slow = head;
let fast = head;
while (fast && fast.next) {
slow = slow.next;
fast = fast.next.next;
}
return slow.data;
};
console.log(findMiddle(list.head));
আউটপুট
8