题目:

Given a singly linked list, determine if it is a palindrome.

Follow up:

思路:

  • 题意:判断一个链表是不是回文
  • 利用两个指针,一个快fast,一个慢slow,slow = head,fast = head,每次fast跳两格,slow一格,直到fast.next.next == null结束,slow位于中间,把slow.next往后的元素倒叙。prev = head,比较head和end的val

代码:

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

LeetCode(55)- Palindrome Linked List的更多相关文章

  1. LeetCode 234. Palindrome Linked List (回文链表)

    Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time ...

  2. [LeetCode] 234. Palindrome Linked List 回文链表

    Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...

  3. (easy)LeetCode 234.Palindrome Linked List

    Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time ...

  4. leetcode:Palindrome Linked List

    Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time ...

  5. Java [Leetcode 234]Palindrome Linked List

    题目描述: Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) ...

  6. LeetCode 234 Palindrome Linked List

    Given a singly linked list, determine if it is a palindrome. 思路: 回文结构从后向前遍历与从前向后遍历的结果是相同的,可以利用一个栈的结构 ...

  7. [LeetCode] 234. Palindrome Linked List 解题思路

    Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time ...

  8. LeetCode 234 Palindrome Linked List(回文链表)(*)(?)

    翻译 给定一个单链表,确定它是否是回文的. 跟进: 你能够在O(n)时间和O(1)空间下完毕它吗? 原文 Given a singly linked list, determine if it is ...

  9. Java for LeetCode 234 Palindrome Linked List

    解题思路: O(1)的空间复杂度,意味着不能通过开一个List来解决问题.我们可以把List分成前后两个部分,后半部分通过指针的相互赋值进行翻转即可. JAVA实现如下: public static ...

随机推荐

  1. 微信小程序的开发:通过微信小程序看前端

    前言 2016年9月22日凌晨,微信官方通过"微信公开课"公众号发布了关于微信小程序(微信应用号)的内测通知.整个朋友圈瞬间便像炸开了锅似的,各种揣测.介绍性文章在一夜里诞生.而真 ...

  2. Oracle dblink详解

     database link概述 database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序.在任何分布式环境里,databas ...

  3. Android Studio科普篇——2.误区

    1.删除一行是ctrl+x? 这是一个被谣传得很广泛的快捷键,但其实删除一行的快捷键不是ctrl+x,而是ctrl+y.ctrl+x在不选中内容的情况下,是剪切当前行,而ctrl+y才是删除当前行,它 ...

  4. JAVA中的静态成员

    //Java中的静态成员 /* *静态的成员变量是属于类的,不属于某个对象,是共享的. * 访问时可以用类名.静态属性直接访问,也可以用对象.访问,后者不提倡. * 静态的成员方法只能访问静态的成员 ...

  5. ROC曲线的AUC(以及其他评价指标的简介)知识整理

    相关评价指标在这片文章里有很好介绍 信息检索(IR)的评价指标介绍 - 准确率.召回率.F1.mAP.ROC.AUC:http://blog.csdn.net/marising/article/det ...

  6. ADFS3.0 Customizing the AD FS Sign-in Pages

    Windows Server2012R2自带的adfs是3.0的版本,不同于以前的版本的是3.0中登陆页面的定制化全部是通过powershell指令实现,官方的介绍链接如下:http://techne ...

  7. R12: Improving Performance of General Ledger and Journal Import (Doc ID 858725.1 )

    In this Document   Purpose   Scope   Details   A) Database Init.ora Parameters   B) Concurrent Progr ...

  8. Leetcode_58_Length of Last Word

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  9. 认证模式之Form模式

    上面介绍的两种模式都属于HTTP协议规范范畴,由于它的规范使得很多东西无法自定义,例如登录窗口.错误展示页面.所以需要另外一种模式提供更加灵活的认证,也就是基于Form的认证模式. Form模式的认证 ...

  10. 【算法导论】B树

          一棵B树T是具有如下性质的有根树(设根为root): 1.每个节点x有一下域: (a)num,当前存储在节点x的关键字个数,关键字以非降序存放,因此key[i]<=key[i+1]& ...