方法一:借助栈
function PrintListReversingly(linkedlist){
let stack = [],
current = linkedlist.head;
while(current){
stack.push(current.element);
current = current.next;
}
for(let i = 0; i<stack.length; i++){
console.log(stack.pop());
}
}
方法二:递归的思想
既然想到了用栈来实现这个函数,而递归本质上就是一个栈结构,很自然的想到用递归来实现。要实现反过来输出链表,我们每访问到一个节点的时候,先递归输出它后面的节点,再输出节点自身。
function PrintListReversingly(node){
if(node && node.next){
console.log(PrintListReversingly(node.next));
}else{
console.log(node.element)
}
}
网友评论