• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
华东 博客
17年国科大博士毕业,曾就职于三星电子,清华博后,目前在某大模型创业公司工作,研究方向大模型、智能体 新浪博客: http://blog.sina.com.cn/u/2463286753
博客园    首页    新随笔    联系   管理    订阅  订阅
LeetCode Top100:回文链表 (python)

LeetCode Top100:回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。

示例 1:

输入:head = [1,2,2,1]
输出:true

示例 2:

输入:head = [1,2]
输出:false

提示:

  • 链表中节点数目在范围[1, 105] 内
  • 0 <= Node.val <= 9

 

实现:

可以通过将链表的值复制到一个数组中,再判断数组是否是回文的来判断链表是否是回文的。以下是 Python 代码实现:

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def isPalindrome(head: ListNode) -> bool:
    vals = []
    while head:
        vals.append(head.val)
        head = head.next
    return vals == vals[::-1]

首先定义一个 ListNode 类来表示链表节点,每个节点有一个值 val 和一个指向下一个节点的指针 next。然后定义 isPalindrome 函数来判断链表是否是回文的,参数是链表的头节点 head,返回一个布尔值表示是否是回文链表。

在函数中,我们先定义一个空数组 vals,然后遍历链表,将每个节点的值加入数组中。最后,我们比较数组和它的反转数组是否相等,如果相等,说明链表是回文的,返回 True,否则返回 False。

 

posted on 2023-04-20 14:13  华东博客  阅读(112)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3