判断一个链表是否是回文结构

判断一个链表是否为回文结构

https://www.nowcoder.com/practice/3fed228444e740c8be66232ce8b87c2f?tpId=117&tags=&title=&diffculty=0&judgeStatus=0&rp=1&tab=answerKey

private ListNode sList(ListNode slow){
        ListNode pre = new ListNode(1);
        pre.next = null;
        while(slow!=null){
            ListNode temp = slow.next;
            slow.next = pre.next;
            pre.next = slow;
            slow = temp;
        }
        return pre.next;
    }
    //将链表的后半部分进行反转
    public boolean isPail (ListNode head) {
        // write code here
        ListNode slow = head;
        ListNode fast = head;
        ListNode pre =new ListNode(0);
        pre.next = head;
        while(fast!=null && fast.next!=null){
            fast = fast.next.next;
            slow = slow.next;
            pre = pre.next;
        }

        if(fast!=null){
            pre = pre.next;
            slow = slow.next;
        }

        slow = sList(slow);
        while(slow!=null){
            if(head.val!=slow.val) return false;
            head = head.next;
            slow = slow.next;
        }
        slow = sList(slow);//将反转的链表还原
        pre.next = slow;
        return true;
    }
全部评论

相关推荐

10-13 16:58
门头沟学院 Java
点赞 评论 收藏
分享
10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务