美文网首页
面试题6:从尾到头打印链表

面试题6:从尾到头打印链表

作者: IvyAutumn | 来源:发表于2019-02-22 16:48 被阅读0次

    方法一:借助栈

    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)
        }
    }
    

    相关文章

      网友评论

          本文标题:面试题6:从尾到头打印链表

          本文链接:https://www.haomeiwen.com/subject/qzpeyqtx.html