①将链表中的val从后往前一个个插入进列表中
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
array = []
while head:
array.insert(0, head.val)
head = head.next
return array
执行用时:56 ms, 在所有 Python3 提交中击败了28.61%的用户
内存消耗:16.3 MB, 在所有 Python3 提交中击败了70.13%的用户
通过测试用例:24 / 24
②先直接插入,然后再通过列表的reverse()方法,来实现列表的反转
24 / 24 个通过测试用例
状态:通过
执行用时: 32 ms
内存消耗: 16.2 MB
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
array = []
while head:
array.append(head.val)
head = head.next
array.reverse()
return array
也有看到不用reverse()函数的方法,最后输出array[::-1]
-------------讨论和题解的方法:
③使用递归的方法:先走至链表末端,回溯时依次将节点值加入列表 ,这样就可以实现链表值的倒序输出。
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
if head is None:
return []
return self.reversePrint(head.next) + [head.val]