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


     1 package algorithms;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Stack;
     5 
     6 /**
     7 *    public class ListNode {
     8 *        int val;
     9 *        ListNode next = null;
    10 *
    11 *        ListNode(int val) {
    12 *            this.val = val;
    13 *        }
    14 *    }
    15 *
    16 */
    17 /*
    18  * 题目描述
    19  * 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
    20  * 
    21  * 注意 这个跟反转链表不一样的
    22 */
    23 
    24 
    25 public class PrintListFromTailToHead {
    26     
    27     public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
    28         ArrayList<Integer> list = new ArrayList<Integer>();
    29         Stack<Integer> s = new Stack<Integer>();
    30         while(listNode!=null) {
    31             s.push(listNode.val);
    32             listNode = listNode.next;
    33         }
    34         while(!s.isEmpty()) {
    35             list.add(s.pop());
    36         }
    37         return list;
    38     }
    39 }

    思路:利用栈的先进后出的特性解决。

  • 相关阅读:
    【redis】--安全
    【redis】-- 数据备份和恢复
    2018.2.8 cf
    寒假零碎的东西 不定时更新补充.......
    hdu 1018
    2018寒假acm训练计划
    UVAlive 7466
    母函数
    简单数学题(水的不能在水的题了)
    随便写写的搜索
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10606385.html
Copyright © 2020-2023  润新知