牛客网-判断一个链表是否为回文结构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、基本思路?

题目展示

(1)思路一:将链表倒置,随后将新形成颠倒的链表和旧链表进行比较,如果每个位置上的值都是一样的则就是回文数
(2)思路二:采用数组,将链表上的值全部取出放入数组之中,之后使用python里的内置函数reverse将整个数组进行颠倒,随后采用循环结构将颠倒后的数组和颠倒前的数组进行比较,如果一致的话,那么就说明是回文数

二、代码详情

1.代码展示

代码如下(示例):

class Solution:
    def isPail(self , head: ListNode) -> bool:
        # write code here
        nums = []
        while head:
            nums.append(head.val)
            head = head.next
        temp = nums.copy()
        temp.reverse()
        for i in range(len(nums)):
            if nums[i] != temp[i]:
                return False
        return True

2.结果展示

结果如下:
结果输出


总结

主要学习python里的reverse()/append()/copy()函数
(1)reverse()是python列表中的一个内置方法,也就是说,在字典,字符串或者元组中,是没有这个内置方法的,其作用主要是用于反向列表中元素。
语法:list.reverse()
(2)append()函数
用于在列表末尾添加新的对象。
语法:list.append(obj)
(3)Python copy() 函数返回一个数列的浅复制。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值