从尾到头打印链表

题目描述

输入一个链表,按链表值从尾到头的顺序返回一个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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容