234. Palindrome Linked List

Palindrome Linked List

题目

在这里插入图片描述

解法思路

    有两种实现方法,
    一种直接在原列表上进行处理:

  1. 查找到mid中间的node
  2. 对第二部分同时反转
  3. 比较第一部分/第二部分

    第二种进行处理:

  1. 将原链表转化为列表
  2. 比较得到结果

代码

class Solution:
    def isPalindrome(self, head):
        rev = None
        slow = fast = head
        while fast and fast.next:
            fast = fast.next.next
            rev, rev.next, slow = slow, rev, slow.next
        if fast:
            slow = slow.next
        while rev and rev.val == slow.val:
            slow = slow.next
            rev = rev.next
        return not rev
class Solution:
    def isPalindrome(self, head: 'ListNode') -> 'bool':
        values = []
        while head:
            values.append(head.val)
            head = head.next
        return values == values[::-1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值