题目
难度:⭐️
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例
输入: head = [1,3,2]
输出: [2,3,1]
提示:
0 <= 链表长度 <= 10000
题解
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {number[]}
*/
var reversePrint = function(head) {
let arr = []
let curr = head
while(curr !== null){
arr.unshift(curr.val)
curr = curr.next
}
return arr
};
笔记
按题目要求,从头到尾遍历链表后,逆向输出各节点值(val),这种先进后出的数据结构可以用栈来实现。理论上可以先 push 再 reverse,但考虑到简洁性,可以直接使用 unshift 来解决。