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

  输入:每个输入文件仅包含一组测试样例。 每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。当输入-1的时候,代表输入结束,反向打印出该链表

大一的时候学了c++,之后学了java,接触java感觉很懂东西都已经包装好了,比如就那本题目来说,如果用c++来写,我们还需要设置指针域,节点值,指向下一个节点的next指针,接触了java,发现直接用LinkedList就能完成,我也在想,现在很多公司算法题目都要气用c或则c++进行实现,java学多了让我越来越找不到那种接触底层真正的算法实现。

不吹了,java代码献上。

Linked

package com.lb.test;
import java.util.LinkedList;
import java.util.Scanner;
public class List {
	public static void main(String[] args) {
		/*
		 * 题目描述:
		 *  输入一个链表,从尾到头打印链表每个节点的值。
		 *  输入:
		 *  每个输入文件仅包含一组测试样例。
		 *  每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。
		 *  输出:
		 *  对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。
		 */
		@SuppressWarnings("resource")
		Scanner in = new Scanner(System.in);
		LinkedList<Integer> list = new LinkedList<Integer>();
		int listValue;
		while((listValue = in.nextInt())!=-1){
			list.add(listValue);
		}
		int listLength = list.size();
		for(int i = listLength-1;i>=0;--i){
			System.out.println(list.get(i));
		}
	}

}

List底层采用链表实现,至于怎么实现的我没看过源码,只知道“拿来主义”,可以支持随机存取。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值