从尾到头打印链表
题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
示例1
输入
{67,0,24,58}
返回值
[58,24,0,67]
代码
- 递归
def printListFromTailToHead(self, listNode):
#递归
result = []
def solution(node):
if node:
solution(node.next)
result.append(node.val)
solution(listNode)
return result
- 栈
def printListFromTailToHead(self, listNode):
#栈
if not listNode:
return []
tmp = []
result = []
while listNode:
tmp.append(listNode.val)
listNode = listNode.next
#pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
while tmp:
result.append(tmp.pop())
return result
- 从头到尾遍历,逆序输出
def printListFromTailToHead(self, listNode):
#单链表
result = []
while listNode:
result.append(listNode.val)
listNode = listNode.next
return result[::-1]