每周一题:从头到尾打印链表(更新JS)
Posted 沈卢
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每周一题:从头到尾打印链表(更新JS)相关的知识,希望对你有一定的参考价值。
题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2] 输出:[2,3,1]
通过率:
代码:
var reversePrint = function(head) {
let result = [];
if(head==null){
return [];
}
while(head != null) {
result.unshift(head.val);
head = head.next;
}
return result;
};
思路:
这道题就类似于反转数组一样,首先建立一个空数组用来存放反转之后的链表数值,其次建立while循环,排除掉链表为空的这种情况,即能保证链表不为空进入循环。
然后用unshift()方法向数组的开头添加一个或更多元素,并返回新的长度(不过这里不需要我们返回新的长度,只需要添加元素就好了),然后将原本链表中的数据元素一个一个存入空数组中,因为unshift方法是从数组开头添加元素,所以这里我们不需要再对链表或者数组做任何翻转,直接输入就可以了。
最后再返回数组,即为答案。
唯一缺点就是耗时还是太长,不太令人满意。
以上是关于每周一题:从头到尾打印链表(更新JS)的主要内容,如果未能解决你的问题,请参考以下文章