学习笔记:剑指 Offer 06. 从尾到头打印链表

267 阅读1分钟

题目描述

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

题目示例

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

题目解析

链表的特点:链表中的每一个元素由一个存储元素本身的节点(即元素的value)和一个指向下一个元素的引用(指针或者说链接)组成

最简单的方式解答这道题就是遍历链表,将每个元素存放到临时的数组中,最后输出的时候可以反转这个数组,或者利用数组的unshift方法也可以。

代码实现

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @return {number[]}
 */
 const reverseLinkedList = function(head) {
     const results = [];
     let current = head;
     // current != null 和 current !== null || current !== undefined等价
     while(current != null) {
         results.unshift(current.val)
         current = current.next
     }
     return results
 }

题目来源

剑指 Offer 06. 从尾到头打印链表

参考书籍

学习JavaScript数据结构与算法(第三版)