输入一个链表,从尾到头打印链表每一个节点的值。 java
输入: 每一个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,表明一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时表明链表输入完毕。-1自己不属于链表。 函数
对应每一个测试案例,以从尾到头的顺序输出链表每一个节点的值,每一个值占一行。 测试
样例输入: code
1 2 3 4 5 -1样例输出:
5 4 3 2 1方法一:
public class Main { Scanner s = new Scanner(System.in); public void add(){ int value = 0; if((value = s.nextInt()) != -1){ add(); } if(value != -1) System.out.println(value); } public static void main(String[] args) { CopyOfMain m = new CopyOfMain(); m.add(); } }此种方法当链表很是长的时候,就会致使函数调用的层级很深,从而有可能致使函数调用栈溢出
方法二: class
import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Stack stack = new Stack(); int value = 0; Scanner s = new Scanner(System.in); while((value = s.nextInt()) != -1){ stack.push(value); } while(!stack.isEmpty()){ System.out.println(stack.pop()); } } }