加载中...
234-回文链表(Palindrome Linked List)
发表于:2021-12-03 | 分类: 简单
字数统计: 383 | 阅读时长: 1分钟 | 阅读量:

原文链接: https://leetcode-cn.com/problems/palindrome-linked-list

英文原文

Given the head of a singly linked list, return true if it is a palindrome.

 

Example 1:

Input: head = [1,2,2,1]
Output: true

Example 2:

Input: head = [1,2]
Output: false

 

Constraints:

  • The number of nodes in the list is in the range [1, 105].
  • 0 <= Node.val <= 9

 

Follow up: Could you do it in O(n) time and O(1) space?

中文题目

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false

 

示例 1:

输入:head = [1,2,2,1]
输出:true

示例 2:

输入:head = [1,2]
输出:false

 

提示:

  • 链表中节点数目在范围[1, 105]
  • 0 <= Node.val <= 9

 

进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

通过代码

高赞题解

image.png

public boolean isPalindrome(ListNode head) {
    if(head == null || head.next == null) {
        return true;
    }
    ListNode slow = head, fast = head;
    ListNode pre = head, prepre = null;
    while(fast != null && fast.next != null) {
        pre = slow;
        slow = slow.next;
        fast = fast.next.next;
        pre.next = prepre;
        prepre = pre;
    }
    if(fast != null) {
        slow = slow.next;
    }
    while(pre != null && slow != null) {
        if(pre.val != slow.val) {
            return false;
        }
        pre = pre.next;
        slow = slow.next;
    }
    return true;
}

统计信息

通过次数 提交次数 AC比率
335872 671009 50.1%

提交历史

提交时间 提交结果 执行时间 内存消耗 语言

相似题目

题目 难度
回文数 简单
验证回文串 简单
反转链表 简单
上一篇:
232-用栈实现队列(Implement Queue using Stacks)
下一篇:
235-二叉搜索树的最近公共祖先(Lowest Common Ancestor of a Binary Search Tree)
本文目录
本文目录