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 }
  • 相关阅读:
    MD5加密
    input text 只能输入数字
    input date 支持placeholder属性
    实例表单的增改删
    jQuery 框架中$.ajax()的常用参数有哪些?
    jquery的相关属性和方法
    JS中实现继承的六种方式及优缺点
    c++类型转换
    c++动态内存与智能指针
    c++类的构造函数
  • 原文地址:https://www.cnblogs.com/ERFishing/p/11831522.html
Copyright © 2011-2022 走看看