抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

题目描述:

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

示例:

1
2
>输入:head = [1,3,2]
>输出:[2,3,1]

限制:

  1. 0 <= 链表长度 <= 10000

法一:reverse()反转数组

思路

迭代链表,将对应结点的val值存入数组中,最终利用数组的reverse方法反转,返回数组

代码

1
2
3
4
5
6
7
8
9
10
11
var reversePrint = function(head) {
const arr = []
if(head === null){
return []
}
while(head){
arr.push(head.val)
head = head.next
}
return arr.reverse()
};

法二:栈

思路

利用栈的特性,从尾到头打印链表,利用unshift方法

代码

1
2
3
4
5
6
7
8
9
10
11
var reversePrint = function(head) {
const arr = []
if(head === null){
return []
}
while(head){
arr.unshift(head.val)
head = head.next
}
return arr
};

评论