算法:輸入一個鏈表,按鏈表值從尾到頭的順序返回一個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