OneCompiler

palindrome of a Linked List

155

class Node{
constructor(a)
{
this.value = a;
this.next = undefined;

}
}
let insertion_start = function(head,value)
{
new_node = new Node(value)
new_node.next = head;
return new_node;
}
let insertion_end = function(head,value)
{
new_node = new Node(value);
let temp = head;
while(temp.next!=null)
{
temp = temp.next;
}
temp.next = new_node;
new_node.next = null;
}
let insertion_mid = function(head,n,value)
{
new_node = new Node(value);
let temp = head;
while(n-1>0)
{
temp= temp.next;
n--;
}
let x = temp.next;
temp.next = new_node;
new_node.next = x;
}
let display = function(head)
{
let temp = head;
while(temp)
{
console.log(temp.value);
temp= temp.next;
}
}
let check_palindrome = function(head)
{
let temp = head.next;
let val = head.value;
let head2 = new Node(val);
while(temp)
{
let tempval = temp.value;
head2 = insertion_start(head2,tempval)
temp = temp.next;
}
//console.log(head2);
let temp1 = head;
let temp2 = head2;
while(temp1 && temp2)
{
if(temp1.value!= temp2.value)
{
return false;
}
temp1 = temp1.next;
temp2 = temp2.next;
}
return true;

}
head = new Node(1);
insertion_end(head,2)
insertion_end(head,2)
insertion_end(head,1)
console.log(head)
display(head)
console.log(check_palindrome(head))