美文网首页
67. LeetCode 234. 回文链表

67. LeetCode 234. 回文链表

作者: 月牙眼的楼下小黑 | 来源:发表于2019-02-18 15:47 被阅读2次
  • 标签: 链表 双指针
  • 难度: 简单

  • 题目描述
  • 我的解法

【step1】先用快慢指针(p2, p3)确定中间节点位置。参考:快慢指针寻找链表中间结点

【step2】用双指针(p1, p2) 对中间节点后的链表进行倒置。参考:LeedCode206. 反转链表

【step3】用双指针(head, p1)分别从头、尾开始检查。

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def isPalindrome(self, head):
        """
        :type head: ListNode
        :rtype: bool
        """
        if head == None:
            return True
        p1 = None
        p2, p3 = head, head
        while(p3.next and p3.next.next):
            p2 = p2.next 
            p3 = p3.next.next
        while(p2):
            temp = p2.next
            p2.next = p1
            p1 = p2
            p2 = temp
        while(p1 and head):
            if(p1.val == head.val):
                p1 = p1.next
                head = head.next
            else:
                return False
        return True
            
        
  • 其他解法

暂略。

相关文章

  • 234. 回文链表

    234. 回文链表[https://leetcode.cn/problems/palindrome-linked-...

  • LeetCodeEmm

    234. 回文链表[https://leetcode-cn.com/problems/palindrome-lin...

  • 234. 回文链表

    234. 回文链表[https://leetcode-cn.com/problems/palindrome-lin...

  • Leetcode 234 回文链表

    234. 回文链表[https://leetcode-cn.com/problems/palindrome-lin...

  • 67. LeetCode 234. 回文链表

    标签: 链表 双指针 难度: 简单 题目描述 我的解法 【step1】先用快慢指针(p2, p3)确定中间节点...

  • 如何判断回文链表

    读完本文,你可以去力扣拿下如下题目: 234.回文链表[https://leetcode-cn.com/probl...

  • LeetCode|234.回文链表

    题目描述 等级: 简单请判断一个链表是否为回文链表。 示例 1: 示例 2: 进阶:你能否用 O(n) 时间复杂度...

  • LeetCode 234. 回文链表

    234. 回文链表 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2输出: false 示例 2: 输...

  • Leetcode 234. 回文链表

    题目描述 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1...

  • LeetCode 234. 回文链表

    题目描述 请判断一个链表是否为回文链表。 示例1: 示例2: 题解

网友评论

      本文标题:67. LeetCode 234. 回文链表

      本文链接:https://www.haomeiwen.com/subject/hegaeqtx.html