【九度OJ1511】|【剑指offer5】从尾到头打印链表

题目描述:

输入一个链表,从尾到头打印链表每一个节点的值。 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());
		}
	}

}
相关文章
相关标签/搜索