解题思路【辅助栈法】
链表特点:只能从前至后访问每个节点
题目要求:倒序输出节点值
这种先入后出的需求可以借助栈来实现
算法流程:
-
入栈:遍历链表,将各个节点值push入栈。Python使用append()方法
-
出栈:将各个节点值pop出栈,存储于数组并返回。Python直接返回stack的倒序列表
代码:
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def reversePrint(self, head):
"""
:param head: ListNode
:return: List[int]
"""
stack = []
while head:
stack.append(head.val)
head = head.next
return stack[::-1]
Reference