从尾到头打印链表

2018-12-24  本文已影响0人  Max_7

题目描述

输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

思路

思路一:
利用栈的性质。 先进后出。 那么建立一个栈,开始遍历链表,每遇到一个节点就把该节点压入栈中。结束后栈的顶部就是链表的尾,栈的底部就是链表的头。
思路二:
递归。利用递归的思路,先找到尾部的结点,将这个节点放入数组,然后逐层返回。

代码


def printListFromTailToHead(self, listNode):
        stack = []
        result = []
        while listNode is not None:
            stack.append(listNode.val)
            listNode = listNode.next
        while len(stack)>0:
            node = stack.pop(-1)
            result.append(node)
        return result

递归

class Solution:
    def __init__(self):
        self.result = []
    def printListFromTailToHead(self, listNode):
        if listNode :
            self.printListFromTailToHead(listNode.next)
            self.result.append(listNode.val)
        return self.result
上一篇 下一篇

猜你喜欢

热点阅读