輸入一個鏈表,從尾到頭打印鏈表每個節點的值

思路:藉助棧實現,或使用遞歸的方法。
代碼:

public class NodeListPrint {
    //當前節點的值
    static class Node{
        int val;
        Node next;
        public Node(int val){
            this.val = val;
        }
    }

    //每次放入一個節點值
    public static List<Integer> printListFromTailToHead(Node node){
        ArrayList<Integer> integerArrayList = new ArrayList<>();
        //將數據放入棧中
        Stack<Node> integerStack = new Stack<>();
        while (null != node){
            integerStack.push(node);
            node = node.next;
        }
        while (!integerStack.isEmpty()){
            integerArrayList.add(integerStack.pop().val);
        }
        return integerArrayList;
    }

    public static void main(String[] args){
        Node node = new Node(1);
        node.next = new Node(2);
        node.next.next = new Node(3);
        List<Integer> list = printListFromTailToHead(node);
        for (Integer integer : list){
            System.out.println(integer);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章