第三题 从尾到头打印链表
题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
做这题的时候用了两种方法
一、方法一:
思路:
栈。将链表按顺序把val放进数组,放进数组的方式是从头部开始添加。
画了一个图便于理解,也许不够严谨
function printListFromTailToHead(head)
{
// write code here
var str = [];
while(head!==null){
str.unshift(head.val);
head=head.next;
}
return str;
}
二、方法二:
递归。一直递归到链表尾部,从尾部往前将值放进数组,放进数组的方式是从尾部添加(push)
function printListFromTailToHead(head)
{
var arr=[];
getArr(head,arr);
return arr
}
function getArr(head,arr){
if(head!==null){
getArr(head.next,arr);
arr.push(head.val)
}
}
关键点 :栈 递归
知识点:链表