zoukankan      html  css  js  c++  java
  • 链表的反转打印

    question:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

    resolution1:先用一个链表依次保存每个node的值,然后再用一个链表保存反转后的值

      /**
             * 运行时间:22ms
             * 占用内存:9200k
             * @param listNode
             * @return
             */
            public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
                ArrayList list = new ArrayList();
                ArrayList<Integer> revertList = new ArrayList<>();
                while (listNode != null){//判断当前node是否为null进行链表的遍历
                    list.add(listNode.val);
                    listNode = listNode.next;
                }
                for(int i = list.size()-1; i >=0; i--){//这里的i可以取到0
                    revertList.add((Integer) list.get(i));
                }
                return revertList;
    
            }

    resolution2:采用递归判断下个节点是否为空,直到将指针指到最后一个节点,然后再依次进行取值,最后取出的值就是反转的列表。

      ArrayList list = new ArrayList();//作为全局变量,共用同一个list
            public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
                if (listNode != null) {
                    printListFromTailToHead(listNode.next);//依次递归,直到指到最后一个node
                    list.add(listNode.val);//再从最后一个node依次遍历前面的node的值
                }
                return list;
            }
    欢迎关注我的公众号:小秋的博客 CSDN博客:https://blog.csdn.net/xiaoqiu_cr github:https://github.com/crr121 联系邮箱:rongchen633@gmail.com 有什么问题可以给我留言噢~
  • 相关阅读:
    通用分页后台显示
    自定义的JSP标签
    Java反射机制
    Java虚拟机栈---本地方法栈
    XML建模实列
    XML解析与xml和Map集合的互转
    [离散数学]第二次作业
    [线性代数]2016.10.13作业
    [数字逻辑]第二次作业
    [线性代数]2016.9.26作业
  • 原文地址:https://www.cnblogs.com/flyingcr/p/10326849.html
Copyright © 2011-2022 走看看