• 剑指offer第二版-6.从尾到头打印链表


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

    思路:从尾到头打印,即为“先进后出”,则可以使用栈来处理;考虑递归的本质也是一个栈结构,可递归输出。

    考点:对链表、栈、递归的理解。

    package com.java.offer;
    
    import java.util.Stack;
    
    /**
     * @since 2019年2月14日 下午2:13:20
     * @author xuchao
     *
     */
    public class P6_PrintListInReversedOrder {
        public static class ListNode<T> {
            public T val;
            public ListNode<T> next;
    
            public ListNode(T val) {
                this.val = val;
                this.next = null;
            }
        }
    
        // 方法1:(非递归)使用Stack栈的先push后pop
        public static <T> void printListReverse(ListNode<T> listNode) {
            Stack<ListNode<T>> stack = new Stack<>();
            while(listNode!=null) {
                stack.push(listNode);
                listNode = listNode.next;
            }
            while (!stack.isEmpty()) {
                System.out.println(stack.pop().val);
            }
        }
        
        // 方法2:递归
        public static <T> void printListReverse_rec(ListNode<T> listNode) {
            if (listNode != null) {
                if (listNode.next != null) {
                    printListReverse_rec(listNode.next);
                }
                System.out.println(listNode.val);
            }
        }
    
        public static void main(String[] args) {
            ListNode<Integer> head = new ListNode<Integer>(1);
            head.next = new ListNode<Integer>(2);
            head.next.next = new ListNode<Integer>(3);
    
            printListReverse_rec(head);
            printListReverse(head);
    
        }
    }
  • 相关阅读:
    Spring的历史和哲学
    CORS简介
    LDAP概念了解
    Restful levels&HATEOAS
    python/mysql connector
    Session&Cookie 简介及使用
    XML简介
    Json简介
    《魅族官网》
    期末设计部分代码截图
  • 原文地址:https://www.cnblogs.com/chao-zjj/p/10374553.html
Copyright © 2020-2023  润新知