首页 > 其他 > 详细

逆序打印单链表详解

时间:2021-05-04 23:26:23      阅读:25      评论:0      收藏:0      [点我收藏+]

逆序打印单链表详解

思路分析

思路1:
可以先将单链表反转(上一篇博客),然后打印反转后的链表,但是单链表反转会破坏原先链表的结构,对于某些情况并不使用
思路2:
  1. 基于栈的先进后出特性,可以遍历单链表,依次将每一个节点入栈
  2. 再遍历栈,在节点出栈时,最后入栈的节点先被打印,即可实现链表的逆序打印
  3. 说明:较为简单

源码及分析

//逆序打印单链表
    //思路:
    //1.基于栈的先进后出特性,先将单链表的所有节点入栈
    //2. 然后弹出栈中元素即可
    public static void reversePrint(HeroNode head) {
        //先判断链表是是否为空
        if (head.next == null) {
            return;
        }
        //定义一个栈保存链表节点
        Stack<HeroNode> stack = new Stack<>();
        //定义一个辅助指针当前节点的下一个节点
        HeroNode cur = head.next;
        while (cur != null) {
            //入栈
            stack.push(cur);
            //指针后移
            cur = cur.next;
        }
        //全部入栈后节点出栈,实现逆序效果
        //栈结构在取出一个元素后,这个元素将会被删除
        while (stack.size() > 0) {
            System.out.println(stack.pop());
        }
    }

逆序打印单链表详解

原文:https://www.cnblogs.com/mx-info/p/14730336.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!