public class CheckPalindromeLL {
public static void main(String args[])
{
Link head=null;
Link l1=createLinkList1(head);
Link l2=l1;
System.out.println("first linklist");
display(l1);
System.out.println("reveresed linklist");
Link rev=reverse(l1);
Link rev2=rev;
display(rev2);
System.out.println("IS PALINDROME");
compare(l1,rev);
}
private static Link reverse(Link l11) {
Link l12=l11;
// TODO Auto-generated method stub
Link nextp;
Link curr=l12;
Link prevp=null;
while(curr!=null)
{
nextp=curr.next;
curr.next=prevp;
prevp=curr;
curr=nextp;
}
return prevp;
}
private static boolean compare(Link d1, Link d2) {
boolean flag=true;
while((d1!=null) && (d2!=null)&& flag)
{
if(d1.num!=d2.num)
{ System.out.println("not same ");
flag=false;
break;
}
else
{
System.out.println("list:"+d1.num);
System.out.println("rev:"+d2.num);
System.out.println(" same");
d1=d1.next;
d2=d2.next;
}
}
System.out.println("printing flag"+flag);
return flag;
}
private static Link createLinkList1(Link head) {
// TODO Auto-generated method stub
Link firstlink=head;
Link newLink = null;
Scanner reader = new Scanner(System.in);
System.out.println("Enter a number: ");
int x[]={1,2,3,1};
for(int i=0;i<x.length;i++)
{
newLink=new Link(x[i]);
newLink.next=firstlink;
firstlink=newLink;
}
head= firstlink;
return newLink;
}
public static void display(Link start)
{
Link s1=start;
while(s1!=null)
{
System.out.println(s1.num);
s1=s1.next;
}
}
}
linkedlist
を比較し、linkedlist
の逆が、第2 element.Itを比較することはできませんだけで、オリジナルの最初の要素をチェックして、linkedlist
を逆にし、最初の要素に基づいて答えを与えるonly.Am私は何かが足りません?LinkedListでの回文をチェックするには - linked linkedListとReverse LinkedListを比較してください。
あなたは「リンク」を1つだけ作成します(つまり、**同じ**リンクへの参照が2つあります)。 –