题目
题解
# 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模块来提供这种数据类型的实现。