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

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

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;
    }
全部评论

相关推荐

昨天 11:21
门头沟学院 Java
总包48.5w,意想不到的价格
无情咸鱼王的秋招日记之薛定谔的Offer:R
点赞 评论 收藏
分享
面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务