zoukankan      html  css  js  c++  java
  • 从头到尾打印链表Java实现[剑指offer]

    题目

    输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
    第一想法可能是将链表反转,但是根据题意,应当是不能改变链表的结构的。

    1通过栈的思想实现

    1.1描述

    链表的节点越靠后,就越先打印,符合先进后出的思想,利用ArrayList类中add方法可以指定index,将当前节点放在链表的最前面即可

    1.2code

     1 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
     2         //1.通过栈的思想实现
     3         ArrayList<Integer> list=new ArrayList<Integer>();
     4         if(listNode!=null){
     5            while(listNode!=null){
     6                list.add(0,listNode.val);
     7                listNode=listNode.next;
     8            }
     9         }
    10         return list;
    11     }

    2通过递归实现

    2.1描述

    递归的本质是一个栈结构,当访问到一个节点时,先不输出,先输出该节点的下一个节点,再输出自身

    2.2code

     1 public class Solution {
     2     ArrayList<Integer> list=new ArrayList<Integer>();
     3     public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
     4         if(listNode!=null){
     5             printListFromTailToHead(listNode.next);
     6             list.add(listNode.val);
     7         }
     8         return list;
     9     }
    10 }
  • 相关阅读:
    填空:类型转换1
    :其他基本数据类型存储空间大小
    10:Hello, World!的大小
    09:整型与布尔型的转换
    08:打印字符
    07:打印ASCII码
    06:浮点数向零舍入
    05:填空:类型转换2
    04:填空:类型转换1
    03:其他基本数据类型存储空间大小
  • 原文地址:https://www.cnblogs.com/ERFishing/p/11831522.html
Copyright © 2011-2022 走看看