zoukankan      html  css  js  c++  java
  • 每周一题:从头到尾打印链表(更新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方法是从数组开头添加元素,所以这里我们不需要再对链表或者数组做任何翻转,直接输入就可以了。
    最后再返回数组,即为答案。
    唯一缺点就是耗时还是太长,不太令人满意。
  • 相关阅读:
    [LeetCode] 21. 合并两个有序链表
    [LeetCode] 5081. 步进数
    [LeetCode] 104. 二叉树的最大深度
    [LeetCode] 70. 爬楼梯
    Java开发手册1.5读书笔记
    [LeetCode] 509. 斐波那契数
    设计模式之UML类图以及类间关系
    [LeetCode] 50. Pow(x, n)
    [LeetCode] 206. 反转链表
    [LeetCode] 119. 杨辉三角 II
  • 原文地址:https://www.cnblogs.com/sayg-1207/p/13232779.html
Copyright © 2011-2022 走看看