题解 | #从尾到头打印链表#

从尾到头打印链表

https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tqId=23278&ru=/exam/oj/ta&qru=/ta/coding-interviews/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D13%26type%3D13

1. 方法一:存储数组,然后翻转输出数组

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param listNode ListNode类 
# @return int整型一维数组
#
class Solution:
    def printListFromTailToHead(self , listNode: ListNode) :
        # write code here
        res = []
        while listNode :
            res.append(listNode.val)
            listNode = listNode.next

        return res[::-1]

2.方法二:递归翻转数组(Python会出现递归越界的错误)


# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param listNode ListNode类 
# @return int整型一维数组
#
class Solution:
    def printListFromTailToHead(self , listNode: ListNode) -> List[int]:
        # write code here
        if(listNode == None):
            return []
        return self.printListFromTailToHead(listNode.next) + [listNode.val]
  1. 注意在Python中在一个类的方法内部调用自身时,需要使用 self 来引用该实例的方法
  2. 列表相加可以拼接在一起

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务