package com.cxz.question5; import java.util.Stack; /* * 输入个链表的头结点,从尾到头反过来打印出每个结点的值。 * */ public class Demo5 { /** * 结点对象 * @author CXZ * */ public static class ListNode { int val; //结点的值 ListNode next; //下一个结点 } /** * 输入个链表的头结点,从尾到头反过来打印出每个结点的值 * 使用栈的方式进行 * @param root */ /*public static void printListInverse(ListNode root) { Stack<ListNode> stack = new Stack<>(); while (root != null) { stack.push(root); root = root.next; } ListNode temp; while (!stack.isEmpty()) { temp = stack.pop(); System.out.println(temp.val+ " "); } }*/ /** * 输入个链表的头结点,从尾到头反过来打印出每个结点的值 * 递归 * @param root */ public static void printListInverseByRecursion(ListNode root) { if (root != null) { printListInverseByRecursion(root.next); System.out.println(root.val + " "); } } public static void main(String[] args) { ListNode root = new ListNode(); root.val = ; root.next = new ListNode(); root.next.val = ; root.next.next = new ListNode(); root.next.next.val = ; root.next.next.next = new ListNode(); root.next.next.next.val = ; root.next.next.next.next = new ListNode(); root.next.next.next.next.val = ; //printListInverse(root); System.out.println(); printListInverseByRecursion(root); } }