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

}
相關文章
相關標籤/搜索