• 题目

    • 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
  • 思路
    • 使用栈依次存放输入的链表顺序的值,然后依次出栈便是链表的逆序。
  • 代码
    • import java.util.ArrayList;
      import java.util.Stack;
      /**
      *描述逆序打印链表
      * 输入:一个链表L1
      * 输出:按链表值逆序返回一个Arraylist
      *
      */
      public class ReversePrintList {
      /**需要定义节点,值和指针**/
      static class ListNode{
      int val;
      ListNode next=null;
      ListNode(int val){
      this.val=val;
      }
      }
      public static ArrayList<Integer> ReverseList(ListNode L1){
      Stack<Integer> sk1=new Stack<Integer>();
      ArrayList<Integer> res=new ArrayList<Integer>();
      if(L1==null){
      return null;
      }
      while(L1!=null){//入栈
      sk1.push(L1.val);
      L1=L1.next;
      }
      int len=sk1.size();
      for(int i=0;i<len;i++){//出栈
      res.add(sk1.pop());
      }
      return res;
      }
      public static void main(String Args[]){
      ListNode l1=new ListNode(1);
      ListNode l2=new ListNode(2);
      ListNode l3=new ListNode(3);
      ListNode l4=new ListNode(4);
      l1.next=l2;
      l2.next=l3;
      l3.next=l4;
      ReverseList(l1);
      ArrayList<Integer> a1=new ArrayList<Integer>();
      a1=ReverseList(l1);
      System.out.print(a1);
      }
      }

        

    • 输出
    • [4, 3, 2, 1]
      

        

面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList的更多相关文章

  1. 3、输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

    题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路: 利用栈“先进后出”的性质,将链表的值存入到栈里,然后将栈里的值存入到构建好的容器里,最后打印容器. class So ...

  2. 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList

    package algorithms; import java.util.ArrayList; import java.util.Stack; /** * public class ListNode ...

  3. 剑指Offer_编程题-003 - 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList

    如题 (总结) 首节点也存放了值,所以ListNode t = listNode; 直接从头开始遍历即可. 简单题目,但是构建的时候出了点问题,毕竟需要自己简单测测. 掌握链表的构建方法, 还要根据题 ...

  4. python链表从尾到头的顺序返回一个ArrayList

    思路:获取链表的值,添加入列表中,反转列表即可获得ArrayList # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): ...

  5. 剑指offer 面试题6:从尾到头打印链表

    题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 编程思想 从前往后遍历,将值存入栈中,然后打印栈中内容即可. 编程实现 /** * struct ListNode { * ...

  6. 剑指Offer编程题3——从尾到头打印链表

    题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList.   题目解析 方法1:建立两个vector,第一个用来存储正向访问的数据,第二个用来反向存储. /** * struct L ...

  7. 剑指offer【03】- 从尾到头打印链表(4种实现方法)

    题目:从尾到头打印链表 考点:链表 题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 法一:ArrayList头插法 /** * public class ListNode ...

  8. 《剑指offer》从尾到头打印链表

    本题来自<剑指offer> 从尾到头打印链表 题目: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路: 方案一:首先遍历到尾部,然后从尾部进行到头值进行操作,后进先 ...

  9. 剑指offer——python【第3题】从尾到头打印链表

    题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 理解 首先要理解链表的概念,链表是由一串串数字首尾相连组成的 解题 # -*- coding:utf-8 -*- # cla ...

随机推荐

  1. Java 文件路径的读取

    记得在操作系统中了解到文件读取有两种方式,当然这在各编程语言中也是通用的,所以java路径也分,相对和绝对路径. 绝对路径 绝对路径URI ,听着和URL非常相似.那我们就来看看吧. URI(Unif ...

  2. python dig trace 功能实现——通过Querying name server IP来判定是否为dns tunnel

    dns tunnel确认方法,查询子域名最终的解析地址: 使用方法:python dig_trace.py  "<7cf1e56b 67fc90f8 caaae86e 0787e907 ...

  3. 并不对劲的AC自动机

    这像是能解决所有问题的样子(并不).AC自动机之所以叫AC自动机是因为它能解决所有AC自动机的题. 其实只能解决的是很多模式串匹配一个母串的问题. 把kmp中的next数组得到下一次跳转的位置看成特殊 ...

  4. BZOJ_5368_[Pkusc2018]真实排名_组合数

    BZOJ_5368_[Pkusc2018]真实排名_组合数 Description 小C是某知名比赛的组织者,该比赛一共有n名选手参加,每个选手的成绩是一个非负整数,定义一个选手的排名是:成绩不小于他 ...

  5. BZOJ4561: [JLoi2016]圆的异或并 计算几何+treap

    因为本题保证两圆之间只有相包含或相离(不用担心两圆重合 因为我没有RE) 所以每个圆之间的相对位置是确定的  也就是可以按极角排序的, 所以可以按横坐标排序后 扫描同时用treap维护加圆删圆(即遇到 ...

  6. 《StackGAN: Text to Photo-realistic Image Synthesis with Stacked GAN》论文笔记

    出处:arxiv 2016 尚未出版 Motivation 根据文字描述来合成相片级真实感的图片是一项极具挑战性的任务.现有的生成手段,往往只能合成大体的目标,而丢失了生动的细节信息.StackGAN ...

  7. Linq list 排序,Dictionary 排序

    C# 对List成员排序的简单方法 http://blog.csdn.net/wanzhuan2010/article/details/6205884 LINQ之路系列博客导航 http://www. ...

  8. Ubuntu 14.04.1 配置 Android 源码开发环境(jdk版本切换)(转载)

    转自:http://www.cnblogs.com/ren-gh/p/4248407.html # Ubuntu 14.04.1 1.更新源: sudo apt-get update 安装vim工具: ...

  9. bzoj 4078: [Wf2014]Metal Processing Plant【二分+2-SAT+枚举+并查集】

    枚举从大到小s1,二分s2(越大越有可能符合),2-SAT判断,ans取min 思路倒是挺简单的,就是二分的时候出了比较诡异的问题,只能二分s2的值,不能在数组上二分... 有个优化,就是当不是二分图 ...

  10. 洛谷P3569 [POI2014]KAR-Cards(线段树)

    传送门 蠢了…… 我们用线段树,记$w0$为该区间最左端取小值时,最右端最小能取大还是小还是无解,$w1$表示最左端取大值时,最右端最小能取大还是小还是无解 然后只要把交换看做修改就好了 这么说可能很 ...