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

【leetcode 简单】 第六十七题 回文链表

时间:2018-08-24 10:57:01      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:复杂度   nbsp   return   self   etc   空间复杂度   lis   head   one   

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

示例 1:

输入: 1->2
输出: false

示例 2:

输入: 1->2->2->1
输出: true

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

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

class Solution:
    def reverst(self,head):
        a=head
        b=head.next
        head.next = None;
        while b:
            c = b.next
            b.next = a
            a = b
            b=c
        head = a
        return head
        
    def isPalindrome(self, head):
        """
        :type head: ListNode
        :rtype: bool
        """
        if not head or not head.next:
            return True
    
        fast = slow = head
        while fast.next and fast.next.next:
            slow = slow.next
            fast = fast.next.next
        slow = slow.next
        slow = self.reverst(slow)
        while slow:
            if head.val != slow.val:
                return False
            slow = slow.next
            head = head.next
        return True
    
    

 

【leetcode 简单】 第六十七题 回文链表

标签:复杂度   nbsp   return   self   etc   空间复杂度   lis   head   one   

原文地址:https://www.cnblogs.com/flashBoxer/p/9527551.html

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