【Python刷题】数据结构:从头到尾打印链表

题目

https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tqId=23278&ru=/exam/oj/ta&qru=/ta/coding-interviews/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D13%26type%3D13

题解

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param listNode ListNode类 
# @return int整型一维数组
#
class Solution:
    def printListFromTailToHead(self , listNode: ListNode) -> List[int]:
        # write code here
        res = []
        while listNode:
            # 遍历链表,存入数组中
            res.append(listNode.val)
            listNode = listNode.next
        # 数组反向输出
        return res[::-1]

学习

[: : -1]

假设a是一个字符串。python 中的 Slice 表示法具有以下语法:
在这里插入图片描述
如果没有指定start和stop,则意味着遍历整个序列
所以,当你这样做时a[::-1],它会从最后开始到第一个获取每个元素。所以它反转了a。这也适用于列表/元组。

Python 链表 Linked Lists

链表是计算机科学中最常用的数据结构之一。它也是最简单的结构之一,也是堆栈、循环缓冲区和队列等更高级别结构的基础。

一般来说,列表是通过引用连接的单个数据元素的集合。C 程序员将其称为指针。例如,数据元素可以由地址数据、地理数据、几何数据、路由信息或交易细节组成。通常,链表的每个元素都具有特定于链表的相同数据类型

单个列表元素称为节点。节点不像数组那样顺序存储在内存中。相反,它可能会在不同的内存段中找到它们,您可以通过跟踪从一个节点到下一个节点的指针来找到它们。通常用 NIL 元素标记列表的结尾,由 Python 等效项表示None。

存在两种列表——单链表双链表。单链表中的节点只指向链表中的下一个元素,而双链表中的节点也指向前一个节点。

单链表
单链表

双链表
双链表

Python 语言不包含链表的预定义数据类型。为了应对这种情况,我们要么必须创建自己的数据类型,要么必须使用额外的 Python模块来提供这种数据类型的实现。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值