剑指offer---java练习篇(3)

今天继续练习剑指offer上练习题,该博客只是记录自己学习过程,欢迎各位博友,批评指正。


三、输入一个链表,从尾到头打印每个节点的数据


题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。


解题思路:

从头到尾打印出每个节点的值,我们自然想到遍历,但是题目要求反过来打印,也就是遍历时,第一个节点的数据,确是最后一个打印出来,这时候自然想到栈。先进后出,因此,本次我们想到遍历后将节点数据保存在一个栈中,再输出栈即可。


java代码:

public class CongWeiDaoTouDaYinLianBiao {
	public ArrayList printListFromTainToHead(ListNode ListNode){
		ArrayList List = new ArrayList();
		ArrayList List2 = new ArrayList();
		
		ListNode n = LiseNode;
		while(n != null){
			List.add(n.val);
			n = n.next;
			
		}
		
		for(int i = List.size()-1; i >= 0; i--){
			List2.add(List.get(i));
			System.out.println(List.get(i));
		}
		return List2;
		
 		
	}

}



你可能感兴趣的:(算法)