一、题目描述
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
二、解题方法
在面试中,如果我们打算 修改输入的数据,则最好先问面试官是否允许修改
思路如下
- 首先肯定要遍历链表,遍历的顺序是从头到尾,可输出的顺序是从尾到头。也就是,第一个遍历到的节点最后一个输出,最后遍历到的节点先出。也就是先进后出,即可以利用栈结构解决。
- 代码如下:
var reversePrint = function(head) {
let arr=[]
let node=head
while(node!==null){
arr.unshift(node.val)
node=node.next
}
return arr
};