题解 | #从尾到头打印链表#
从尾到头打印链表
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]
- 注意在Python中在一个类的方法内部调用自身时,需要使用 self 来引用该实例的方法
- 列表相加可以拼接在一起