剑指Offer编程题-从头到尾打印链表
题目:从头到尾打印链表
题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
解题思路
- 遍历链表,插值时从头部插入
- 递归
实现
- 方法一(头插)
python
# -*- 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
li = []
while listNode != None :
li.insert(0, listNode.val)
listNode = listNode.next
return li
- 方法二(递归,更优)
# -*- 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 :
li = self.printListFromTailToHead(listNode.next)
li.append(listNode.val)
else:
li = []
return li