zoukankan      html  css  js  c++  java
  • 5、从尾部打印链表

     思路1:用额外存储元素,然后遍历输出。如栈或arrayList,前插入,没错都插入到最前面的节点。
        import java.util.ArrayList;
        public class Solution {
        public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
            if(listNode == null){
                return new ArrayList<>();
            }
            int num = 0;
            ListNode head = listNode;
            //计算链表长度
            while(listNode != null) {
                num++;
                listNode = listNode.next;
               
            }    
            ArrayList<Integer> lists = new ArrayList<>();        
           
            //倒序插入
            while(head != null) {
                lists.add(0, head.val);

                head = head.next;        
            }       
            return lists;
        }
        }

     思路2:递归实现。每当访问一个节点,就递归输出后面的节点,然后输出自己。缺点:当链表长的时候,递归深度太深,会调用栈溢出。
    测试:
    只有一个节点,有多个节点。
    空指针。

  • 相关阅读:
    并发工具类的使用 CountDownLatch,CyclicBarrier,Semaphore,Exchanger
    多线程按顺序执行3个方法
    读写锁事例
    使用AQS自定义重入锁
    java 几种锁实现
    Nginx 安装
    Windows 安装mysql
    day--14前端(HTML、CSS)
    day13--开发堡垒机
    day12--python操作mysql
  • 原文地址:https://www.cnblogs.com/lingli-meng/p/7102163.html
Copyright © 2011-2022 走看看