美文网首页
05_回文链表

05_回文链表

作者: butters001 | 来源:发表于2019-10-31 16:16 被阅读0次
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

# 88ms
class Solution(object):
    def isPalindrome(self, head):
        """
        :type head: ListNode
        :rtype: bool
        解题思路:首先想到 反转之后和原链表相等 即为true 不太可行 pass
        解题思路2:遍历 把值一次放到列表里,reverse列表再比较     结果✅
        """
        list1 = []
        while head:
            list1.append(head.val)
            head = head.next
        import copy
        list2 = copy.copy(list1)
        list1.reverse()
        if list1 == list2:
            return True
        return False


# leetcode最优解  44ms 和我的思路一样 只是判断是否是回文列表的方法不一样
# 他是通过前后索引判断是否是回文 可以学习一下 应该也可以用在字符串回文
class Solution2(object):
    def isPalindrome(self, head):
        """
        :type head: ListNode
        :rtype: bool
        """
        if head is None:
            return True
        l = []
        while head is not None:
            l.append(head.val)
            head = head.next
        for i in range(len(l) // 2):
            if l[i] != l[len(l) - 1 - i]:
                return False
        return True

相关文章

网友评论

      本文标题:05_回文链表

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