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

  • 相关阅读:
    Redis进阶
    redis常用指令
    MarkDown基本语法
    JAVA多线程面试
    使用POI操作Excel
    IDEA+GIT的使用
    获取地址栏的参数
    mybatis逆向工程
    遍历map集合
    springboot批量删除
  • 原文地址:https://www.cnblogs.com/lingli-meng/p/7102163.html
Copyright © 2011-2022 走看看