zoukankan      html  css  js  c++  java
  • 输入一个链表,按链表值从尾到头的顺序返回一个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 }

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

  • 相关阅读:
    【arc068E】Snuke Line
    Subseq
    【agc004F】Namori
    Yura
    【agc008F】Black Radius
    【arc080F】Prime Flip
    【arc075F】Mirrored
    【arc074E】RGB Sequence
    【bzoj3669】魔法森林
    【bzoj2500】幸福的道路
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10606385.html
Copyright © 2011-2022 走看看