zoukankan      html  css  js  c++  java
  • 剑指Offer-从尾到头打印链表

    题目描述

    输入一个链表,从尾到头打印链表每个节点的值。

    思路

    思路一:

    递归方法

    思路二:

    从尾到头打印,很明显先进后出,利用栈,栈先进后出

    代码实现

    package LinkedList;
    
    import java.util.ArrayDeque;
    import java.util.ArrayList;
    import java.util.Deque;
    
    
    /**
     * 输入一个链表,从尾到头打印链表每个节点的值。
     */
    public class Solution10 {
    
    
        /**
         * 从尾到头打印,很明显先进后出,利用栈,栈先进后出
         *
         * @param listNode
         * @return
         */
        public ArrayList<Integer> printListFromTailToHead_2(ListNode listNode) {
            if (listNode == null) {
                ArrayList<Integer> arrayList = new ArrayList<>();
                return arrayList;
            }
            //定义一个栈
            Deque<Integer> stack = new ArrayDeque<>();
            while (listNode != null) {
                stack.push(listNode.val);//入栈
                listNode = listNode.next;
            }
            while (!stack.isEmpty()) {
                arrayList.add(stack.pop());//出栈,并添加到arrayList
            }
            return arrayList;
        }
    
        ArrayList<Integer> arrayList = new ArrayList<>();
    
        /**
         * 递归方法
         *
         * @param listNode
         * @return
         */
        public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
            if (listNode != null) {
                printListFromTailToHead(listNode.next);
                arrayList.add(listNode.val);
            }
            return arrayList;
    
        }
    
    
        public class ListNode {
            int val;
            ListNode next = null;
    
            ListNode(int val) {
                this.val = val;
            }
        }
    
    }
     
    
    
    
  • 相关阅读:
    跨域问题
    window7_64+python3.6安装Twisted
    resful协议1
    Http状态码
    数据库学习笔记
    linux学习笔记
    前端学习笔记
    python学习笔记
    mongoDB
    git的使用方法
  • 原文地址:https://www.cnblogs.com/wupeixuan/p/8623055.html
Copyright © 2011-2022 走看看