栈oj---->从尾到头打印链表

Posted ohana!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈oj---->从尾到头打印链表相关的知识,希望对你有一定的参考价值。

题目描述:

 解题代码:

方法一:使用栈的特性解决

思路:将链表结点的value值依次入栈,在用特性“后进先出”,再依次出栈

class Solution {
    public int[] reversePrint(ListNode head) {
        // 方法一:
        ListNode cur = head;
        Stack<Integer> s = new Stack<>();
        while(cur != null){
            s.push(cur.val);
            cur = cur.next;
        }
        int[] array = new int[s.size()];
        for(int i = 0;i < array.length;i++){
            array[i] = s.pop();
        }
        return array;
    }
}
        

方法二:使用普通数组解决

思路:将链表结点的value值赋给数组,然后,将数组的逆序后,直接返回,代码比较冗杂

class Solution {
    public int[] reversePrint(ListNode head) {     
        //方法二:
        ListNode cur = head;
        int count = 0;
        while(cur != null){
            count++;
            cur = cur.next;
        }
        cur = head;
        int[] array = new int[count];
        for(int i = 0;i < count;i++){
            array[i] = cur.val;
            cur = cur.next;
        }
        int left = 0;
        int right = count - 1;
        while(left < right){
            int temp = array[left];
            array[left] = array[right];
            array[right] = temp;
            left++;
            right--;
        }
        return array;
    }
}

以上是关于栈oj---->从尾到头打印链表的主要内容,如果未能解决你的问题,请参考以下文章

从尾到头打印链表 & 栈

LeetCode刷题(158)~从尾到头打印链表递归|辅助栈

从尾到头打印链表-剑指Offer

Leetcode剑指 Offer 06. 从尾到头打印链表(辅助栈)

从尾到头打印链表

剑指Offer-从尾到头打印链表