版权声明:转载请联系作者 https://blog.csdn.net/sinat_21591675/article/details/84553856
一、题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
时间限制:1秒 空间限制:32768K 热度指数:667058 本题知识点: 链表
二、思路:
对于一个链表,每个节点由data和next组成,最后一个节点的next指向None。
题目输入的实际上是表头head。
这里先遍历链表,将元素存在 list 中,然后反向输出 list。可以用slice,也可以使用reversed()函数和sorted()函数。
- reversed() 函数返回的是一个迭代器,而不是一个 list,需要再使用 list 函数转换一下。
- sorted(reverse=True),其中 reverse=True 是按降序排列,reverse=False 是按照升序排列。
- a[::-1]。
三、代码:
# -*- coding:utf-8 -*-
# Python3.6
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
result = []
head = listNode
# Python的空关键字是None
while head != None:
result.append(head.val)
head = head.next
return result[::-1]