美文网首页
判断链表是否是回文结构

判断链表是否是回文结构

作者: 霍运浩 | 来源:发表于2019-02-27 22:22 被阅读0次

    1,解题思路

    一个快指针 一个慢指针 快指针每次走两部,慢指针每次走一步,快指针走完链表,慢指针就走到了链表中间,然后将慢指针后面的节点装入栈中,然后重head开始 逐一对比。

    public static boolean test(Node head){
            if(head==null || head.next==null){
                return false;
            }
            Node slow=head;
            Node fast=head;
            Stack<Integer> nodeStack=new Stack<Integer>();
            while(fast!=null){
                nodeStack.add(slow.data);
                slow=slow.next;
                fast=fast.next.next;
            }
            int size=0;
            while(head!=null){
                size++;
                head=head.next;
            }
            if(size/2==0){
                slow=slow.next;
            }
            while(slow!=null){
                if(nodeStack.pop()!=slow.data){
                    return false;
                }
                slow=slow.next;
            }
            
            return true;    
        }
    

    相关文章

      网友评论

          本文标题:判断链表是否是回文结构

          本文链接:https://www.haomeiwen.com/subject/kprquqtx.html