剑指offer---从尾到头打印链表

浪子不回头ぞ 提交于 2020-02-10 14:03:39

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

#!/usr/bin/env 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
#         new_list = []
#         while listNode:
#             new_list.append(listNode)
#             listNode = listNode.next
#         return [i.val for i in new_list[::-1]]

#方法二 递归
class Solution:
    # 返回从尾部到头部的列表值序列,例如[1,2,3]
    def printListFromTailToHead(self, listNode):
        res = []
        def printNode(listNode):
            if listNode:
                printNode(listNode.next)
                res.append(listNode.val)
        printNode(listNode)
        return res

if __name__ == '__main__':
    l1 = ListNode(1)
    l2 = l1.next = ListNode(2)
    l3 = l2.next = ListNode(3)
    s= Solution()
    print(s.printListFromTailToHead(l1))

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!