QQ空间 新浪微博 腾讯微博 微信 更多
  

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

1:stack类继承关系

2:方法摘要

3:  实例代码

类 Stack<E>

        java.util.AbstractList<E>
            java.util.Vector<E>
                java.util.Stack<E>
所有已实现的接口:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess
 
方法摘要
 boolean
          测试堆栈是否为空。
 E
          查看堆栈顶部的对象,但不从堆栈中移除它。
 E
pop()
          移除堆栈顶部的对象,并作为此函数的值返回该对象。
 E
push(E item)
          把项压入堆栈顶部。
 int
          返回对象在堆栈中的位置,以 1 为基数。
 
代码示例:实现:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
package LG.nowcoder;

/**
 * @Author liguo
 * @Description
 * @Data 2018-08-12 9:57
 * <p>
 * public class ListNode {
 * int val;
 * ListNode next = null;
 * <p>
 * ListNode(int val) {
 * this.val = val;
 * }
 * }
 */
/**
 *    public class ListNode {
 *        int val;
 *        ListNode next = null;
 *
 *        ListNode(int val) {
 *            this.val = val;
 *        }
 *    }
 *
 */

import java.util.Stack;
import java.util.ArrayList;

public class Solution2 {
    public ArrayList <Integer> printListFromTailToHead(ListNode listNode) {
        Stack <Integer> stack = new Stack <>();
        ArrayList <Integer> list = new ArrayList <>();
        while (listNode != null) {
            stack.push( listNode.val );         //push方法进栈
            listNode = listNode.next;
        }
        while (!stack.empty()) {                //empty()方法判断非空
            list.add( stack.pop() );            //pop()方法取出栈顶元素并加入新链表中
        }
        return list;
    }
}

 

  

 

 

posted @ 2018-08-11 17:01  nupt想象之中  阅读(1957)  评论(0编辑  收藏  举报