【剑指offer】反向输出链表【python】

【剑指offer】反向输出链表【python】
非递归方式,使用栈

class listNode:
    def __init__(self, x):
        self.val = x
        self.next = None
class Solution:
    def printListFromTailToHead(self, listNode):
        lists = []
        while listNode != None:
            lists.insert(0, listNode.val)
            listNode = listNode.next
        return lists

使用栈的话,就可以使用递归的方式

class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None
class Solution:
    def __init__(self):
        self.lists = []
    # 返回从尾部到头部的列表值序列,例如[1,2,3]
    def printListFromTailToHead(self, listNode):
        # write code here
        if(listNode != None):
            if(listNode.next != None):
                self.printListFromTailToHead(listNode.next)
            self.lists.append(listNode.val)
        return self.lists