Check if given LinkedList is a pallindrome or not

Check if given LinkedList is a pallindrome or not

My version of the program. Open to corrections and improvements

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package interview.practice;
import data.structures.LinkedList.LinkedList;
import data.structures.LinkedList.Node;
import data.structures.Stack.Stack;
/**
*
* @author jasleen
*/
public class isPallindrome {
public static boolean isPallindrome(LinkedList list) {
Node single = list.head(), doubl = list.head();
Stack stack = new Stack();
if (single == null||single.next()==null) {
return false;
}
while (single.next() != null && doubl.next().next() != null) {
stack.push(single.key());
single = single.next();
doubl = doubl.next().next();
if ( doubl.next() == null) {
break;
}
}
System.out.println(doubl);
System.out.println(single);
System.out.println(stack);
if (doubl.next()!= null) {
stack.push(single.key());
single = single.next();
Node popped=stack.extractTop();
if (!single.key().toString().equals(popped.key().toString())) {
System.out.println("Returning at key" + popped.key().toString()+single.key());
return false;
}
}
single = single.next();
System.out.println(stack);
//System.out.println(single.key());
while (single != null) {
Node popped=stack.extractTop();
if (!single.key().toString().equals(popped.key().toString())) {
System.out.println("Returning at key" + popped.key().toString()+single.key());
return false;
}
single = single.next();
}
return true;
}
}
Download code for this program here.
Download code for LinkedList here.
Download code for Node here.
Download code for Stack here.

0 comments: