剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
方法一:一次循环,头插数组。
输入: head = [1,3,2]
输出: [2,3,1]
var reversePrint = function(head) {
const arr = [];
while(head) {
arr.unshift(head.val);
head = head.next;
}
return arr;
};
方法二:利用递归,递归的结束条件是若传入的节点为null,则输出一个空数组;利用先递归再为数组添加值的方法实现链表的倒叙打印。
var reversePrint = function(head) {
// 递归
if(!head) return [];
let arr = reversePrint(head.next);
arr.push(head.val);
return arr;
};