算法:输入一个链表,按链表值从尾到头的顺序返回一个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
empty()
          测试堆栈是否为空。
 E
peek()
          查看堆栈顶部的对象,但不从堆栈中移除它。
 E
pop()
          移除堆栈顶部的对象,并作为此函数的值返回该对象。
 E
push( E item)
          把项压入堆栈顶部。
 int
search( Object o)
          返回对象在堆栈中的位置,以 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;
    }
}

 

  

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM