目的:
旨在记录在牛客网上刷题的过程,记录心得。
题目:
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
思路:
开辟一个新的List空间,将输入的链表List进行遍历,逆序保存并返回(有一种更简单的直接逆序输出的方式)。
代码:
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
# Python 2.7
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
l = list()
while listNode:
l.append(listNode.val)
listNode = listNode.next
num = len(l)
ArrayList = []
while (num > 0):
ArrayList.append(l[num-1])
num -= 1
return ArrayList
# write code here
更简单的直接逆序输出的方式
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
# Python 2.7
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
l = list()
while listNode:
l.append(listNode.val)
listNode = listNode.next
return l[::-1] #更简单的代码
# write code here
效果:
运行时间:25ms;占用内存:5732k
总结:
做题的时候注意看完整题目,根据上面的注释代码提示,listNode表示是一个链表头结点,结点含有值和下一个结点指针,不能取len,不能进行迭代。