您的位置:首页 > Web前端

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

2013-10-16 00:00 369 查看
题目描述:
输入一个链表,从尾到头打印链表每个节点的值。

输入:
每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。

输出:
对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。

样例输入:

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();
}

}
此种方法当链表非常长的时候,就会导致函数调用的层级很深,从而有可能导致函数调用栈溢出
方法二:

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());
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息