zoukankan      html  css  js  c++  java
  • 剑指offer——从尾到头打印链表

    字符串结束,开始链表。原题目链接为:从尾到头打印链表

    题目描述:

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

     题目分析:

    首先可以将链表的值正向存储到数组中,然后将数组倒着进行输出。

    这种思想其实就和栈差不多,所以我们可以直接借用栈;首先将值入栈;结束之后再出栈,将出栈的值存入ArrayList集合中。此方法的实现代码如下:

     1 import java.util.ArrayList;
     2 import java.util.Stack;
     3 public class Solution {
     4     ArrayList<Integer> arrayList = new ArrayList<Integer>();
     5     Stack<Integer> stack = new Stack<Integer>();
     6     public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
     7         while(listNode != null){
     8             stack.push(listNode.val);
     9             listNode = listNode.next;
    10         }
    11        //出栈,然后加入list集合
    12         while(!stack.isEmpty()){
    13             arrayList.add(stack.pop());
    14         }
    15         return arrayList;
    16     }
    17 }

    除了这种比较直观的方法,还可以采用递归;这样只需要使用集合就可以了;其执行的过程和栈相似,只是中间结果不进行存储。

    实现代码如下:

     1 import java.util.ArrayList;
     2 public class Solution {
     3     ArrayList<Integer> arrayList = new ArrayList<Integer>();
     4     public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
     5         if(listNode != null){
     6             printListFromTailToHead(listNode.next);
     7             arrayList.add(listNode.val);
     8         }
     9         return arrayList;
    10     }
    11 }

    两种方法均通过牛客网。

  • 相关阅读:
    DRF 版本和认证
    DRF 视图和路由
    DRF 序列化组件
    RESTful
    Vuex以及axios
    npm、webpack、vue-cli
    Vue 生命周期
    Vue Router
    Vue 组件
    Vue 快速入门
  • 原文地址:https://www.cnblogs.com/shengguilv/p/12983270.html
Copyright © 2011-2022 走看看