题目描述
输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。
返回的结果用数组存储。
样例
输入:[2, 3, 5]
返回:[5, 3, 2]
算法
题目中的输入数据head,已经是链表形式;所以head.val为第一个数,head.next.val为第二个数,以此类推....
在矩阵中的固定位置进行添加利用list.insert(local,num),即可完成
时间复杂度
时间复杂度为O(n)
python 代码
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def printListReversingly(self, head):
"""
:type head: ListNode
:rtype: List[int]
"""
new_list = []
while head:
ThisNode = head.val
new_list.insert(0, ThisNode)
head = head.next
return new_list
if not head.next:
return [head.val]
else:
return [printListReversingly(head.next)] + [head.val]
这个复杂度是O(n²)
确实是很简洁,但是insert的速度太慢了