剑指 Offer 06. 从尾到头打印链表

链表操作?栈?

题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

题解:比较容易想到的是 用 栈 (LinkedList)来存这个链表的结点,然后弹出 存到 数组里面,之后输出数组。

因为是逆序输出每个节点的值。符合栈先入后出的规则。

class Solution {

    LinkedList stack = new LinkedList();

    public int[] reversePrint(ListNode head) {

        while(head != null){

            stack.addLast(head.val);

            head = head.next;

        }

        int[] arrary = new int[stack.size()];//创建一个 int 数组

        for(int i=0;i

            arrary[i] = stack.removeLast();

        }

        return arrary;

    }

}

链表的操作:

传入链表的一个 头 

取值:head.val

下一个节点:head.next

栈的操作:

创建:LinckedList stack = new LinkedList();

入栈:stack.addLast();

出栈:stack.removeLast()

大小:stack.size()

数组的操作:

创建:int[] array = new int[stack.size()]

遍历:for 循环

输出:return array

你可能感兴趣的:(剑指 Offer 06. 从尾到头打印链表)