1.题目
从尾到头打印链表
2.描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
3.解题思路
1.递归实现。
2.利用栈实现先进后出。
3.遍历链表,存到数组后翻转。
python实现
1.递归实现
def printListFromTailToHead(listNode):
if listNode is None:
return []
return printListFromTailToHead(listNode.next) + [listNode.val]
2.栈实现
from collections import deque
def printListFromTailToHead(listNode):
if not listNode:
return []
temp = deque()
while listNode:
temp.appendleft(listNode.val)
listNode = listNode.next
return temp
3.数组翻转实现
def printListFromTailToHead(listNode):
if not listNode:
return []
x = []
while True:
x.append(listNode.val)
listNode = listNode.next
if listNode == None:
break
x.reverse()
return x