码迷,mamicode.com
首页 > 其他好文 > 详细

请判断一个链表是否为回文链表。

时间:2019-07-07 13:04:35      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:def   class   als   isp   bsp   link   code   false   fast   

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isPalindrome(ListNode head) {
        if(head==null || head.next == null){
                return true;
            }
            
            ListNode slow = head;
            ListNode fast = head;
            while(fast!=null && fast.next!=null) {
                slow = slow.next;
                fast = fast.next.next;
            }
            
            
            ListNode pre = null;
           
            if(fast==null) {
                pre = slow;
            }else {
                pre = slow.next;
            }
            
            ListNode cur = pre.next;
            pre.next = null;
            while(cur!=null) {
                ListNode temp = cur.next;
                cur.next = pre;
                pre=cur;
                cur = temp;
            }
            
            while(pre!=null && head!=null){
                if(pre.val != head.val){
                    return false;
                }else{
                 pre=pre.next;
                 head=head.next;
                }
            }
            return true;
            
    }
}

 

请判断一个链表是否为回文链表。

标签:def   class   als   isp   bsp   link   code   false   fast   

原文地址:https://www.cnblogs.com/q-1993/p/11145486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!