【九度OJ1511】|【剑指offer5】从尾到头打印链表
博客专区 > aqia358 的博客 > 博客详情
【九度OJ1511】|【剑指offer5】从尾到头打印链表
aqia358 发表于4年前
【九度OJ1511】|【剑指offer5】从尾到头打印链表
  • 发表于 4年前
  • 阅读 157
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

题目描述:

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

输入:

每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于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());
		}
	}

}
共有 人打赏支持
粉丝 7
博文 81
码字总数 30297
×
aqia358
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: