问题描述’:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
在牛客网刷题的时候使用了如下两种简便的方法:
方法一:
这种方法使用了list的特性,向list添加元素可以直接使用+[value]。value是向列表添加的元素。
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
if listNode == None:
return []
return self.printListFromTailToHead(listNode.next) + [listNode.val]
方法二:
按从头到尾的顺序输出链表元素到列表,再将列表进行反转返回即可。
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
list = []
while listNode != None:
list.append(listNode.val)
listNode = listNode.next
return [list[d] for d in range(len(list)-1, -1, -1)]