# 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_回文链表
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 使用快慢指针找到中间位置,再进行链表翻转,其实奇数的时候最后两个数组比较,有点巧妙 20min 另外两种考虑1.前...
- 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2输出: false示例 2: 输入: 1->2->2-...
- 234. 回文链表 描述 请检查一个链表是否为回文链表。 进阶 你能在 O(n) 的时间和 O(1) 的额外空间中...