# 题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
。
例如:
输入 2 -> 3 -> 4
输出 [4, 3, 2]
你可以将输入的链表用js
的结构来写,如:
{ val: 2, next: { val: 3, next: { val: 4, next: null } } }
# 解题思路
- 链表的结构为:
val
属性存储当前的值,next
属性存储下一个节点的引用; - 定义一个空数组,将每个节点的
val
推进数组中,并不断查询next
是否存在
# coding
直接使用while
循环就可以实现,当然你也可以使用递归的方式。
/**
* Definition for singly-linked list.
*/
function ListNode(val) {
this.val = val;
this.next = null;
}
/**
* 把链表转换为数组
* @param {ListNode} node
*/
function transformListToArray(node) {
let array = []
while (node) {
array.push(node.val)
node = node.next
}
return array
}
测试代码
const list = { val: 2, next: { val: 3, next: { val: 4, next: null } } }
transformListToArray(list)
// [4, 3, 2]
阅读全文