首页 > 其他 > 详细

剑指offer——从尾到头打印链表

时间:2020-05-28 21:29:28      阅读:46      评论:0      收藏:0      [点我收藏+]

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

题目描述:

输入一个链表,按链表从尾到头的顺序返回一个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 }

两种方法均通过牛客网。

 

剑指offer——从尾到头打印链表

原文:https://www.cnblogs.com/shengguilv/p/12983270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!