题目描述
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
题目示例
输入: head = [1,3,2]
输出: [2,3,1]
题目解析
链表的特点:链表中的每一个元素由一个存储元素本身的节点(即元素的value)和一个指向下一个元素的引用(指针或者说链接)组成
最简单的方式解答这道题就是遍历链表,将每个元素存放到临时的数组中,最后输出的时候可以反转这个数组,或者利用数组的unshift方法也可以。
代码实现
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {number[]}
*/
const reverseLinkedList = function(head) {
const results = [];
let current = head;
// current != null 和 current !== null || current !== undefined等价
while(current != null) {
results.unshift(current.val)
current = current.next
}
return results
}
题目来源
参考书籍
学习JavaScript数据结构与算法(第三版)