剑指offer027-回文链表

回文链表

Posted by 高明 on 2020-01-01

剑指offer027-回文链表

题目

给定一个链表的 头节点 head ,请判断其是否为回文链表。

如果一个链表是回文,那么链表节点序列从前往后看和从后往前看是相同的。

 

示例 1:

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

示例 2:

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

 

提示:

  • 链表 L 的长度范围为 [1, 105]
  • 0 <= node.val <= 9

 

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

 

注意:本题与主站 234 题相同:https://leetcode-cn.com/problems/palindrome-linked-list/

Related Topics
  • 递归
  • 链表
  • 双指针

  • 👍 19
  • 👎 0
  • 思路

    这个暂时没啥思路,就是比较一下正反是否一致。当然可以优化一下,不用Stringbuilder,但是整体时间和空间复杂度是没有变化的

    代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Solution {
    public boolean isPalindrome(ListNode head) {
    StringBuilder sb = new StringBuilder();
    while (head != null){
    sb.append(head.val);
    head = head.next;
    }
    return sb.toString().equals(sb.reverse().toString());
    }
    }