每周一题:从头到尾打印链表(更新JS)

2021-01-25 11:12

阅读:679

标签:代码   方法   nbsp   表数   load   reverse   unshift   shift   lazy   

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

 

示例 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)

标签:代码   方法   nbsp   表数   load   reverse   unshift   shift   lazy   

原文地址:https://www.cnblogs.com/sayg-1207/p/13232779.html


评论


亲,登录后才可以留言!