• 链表的反转打印


    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 有什么问题可以给我留言噢~
  • 相关阅读:
    关于泛型
    共享几个.net工具类
    关于Guid
    自动更新解决方案
    订阅者模式实例
    好久没有blog了,今日就share一个update program的经验
    杀掉相应数据库的进程
    解决IFrame下无法写Cookie问题
    sql处理死锁
    log4net配置及使用方法
  • 原文地址:https://www.cnblogs.com/flyingcr/p/10326849.html
Copyright © 2020-2023  润新知