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

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

文章目录

  • 一、基本思路?
  • 二、代码详情
    • 1.代码展示
    • 2.结果展示
  • 总结

一、基本思路?

牛客网-判断一个链表是否为回文结构_第1张图片

(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.结果展示

结果如下:
牛客网-判断一个链表是否为回文结构_第2张图片


总结

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

你可能感兴趣的:(python算法篇,链表,数据结构)