回文链表(todo:优化为空间O1)

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

示例 1:

输入: 1->2
输出: false
示例 2:

输入: 1->2->2->1
输出: true
进阶:
你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnv1oc/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

# Definition for singly-linked list.

# class ListNode:

#     def __init__(self, val=0, next=None):

#         self.val = val

#         self.next = next

class Solution:

    def isPalindrome(self, head: ListNode) -> bool:

        cnt = 0 

        record = []

        while head:

            cnt+=1

            record.append(head.val)

            head = head.next

        for i in range(cnt//2):

            if record[i]==record[cnt-i-1]:

                continue

            else:

                return False

        return True

 

执行结果:

通过

显示详情

执行用时:752 ms, 在所有 Python3 提交中击败了17.22%的用户

内存消耗:47.6 MB, 在所有 Python3 提交中击败了16.64%的用户

           

上一篇:JavaScript对象与其复制清除方法简析


下一篇:java的强引用、软引用、弱引用、虚引用