题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
思路
倒序输出节点值,先入后出的特点可以借助栈来完成。使用while循环head变量去遍历列表,将头节点append()进空数组中,再将下一个节点head.next赋值给head变量,去推进循环,再将节点head.val的值append()进数组中,最后一个节点的后面是null。
代码
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
stack = []
while head:
stack.append(head.val)
head = head.next;
return stack[::-1]