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和反向,但不能比较第二个element.It,只需检查原始和反向linkedlist的第一个元素,并根据第一个元素only.Am给出答案我遗漏了什么??
https://stackoverflow.com/questions/38025429
复制相似问题