从尾到头打印链表
题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
时间限制:1秒 空间限制:32768K
思路
遍历链表初始化新的array,反转数组得到结果。
代码
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function printListFromTailToHead(head)
{
// write code here
var pointer = head;
var result = [];
var i = 0;
while(pointer != null) {
result[i] = pointer.val;
i++;
pointer = pointer.next;
}
var lengthOfResult = result.length;
for(var i = 0; i <= Math.floor((lengthOfResult - 1) / 2); i++) {
let middle_value = result[i];
result[i] = result[lengthOfResult - i - 1];
result[lengthOfResult - i - 1] = middle_value;
}
return result;
}
运行时间:14ms
占用内存: 5308k
问题
- 链表的实现方式
最优解题思路
replace函数
代码
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function printListFromTailToHead(head)
{
// write code here
var arr=[];
var me=head;
while(me){
arr.push(me.val);
me=me.next;
}
return arr.reverse();
}
运行时间:9毫秒
占用内存:5176k
注:
- reverse()函数