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

来源:互联网 发布:java图形用户界面 编辑:程序博客网 时间:2024/06/07 11:46

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


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


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


解题思路:

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


java代码:

public class CongWeiDaoTouDaYinLianBiao {public ArrayList<Integer> printListFromTainToHead(ListNode ListNode){ArrayList<Integer> List = new ArrayList<Integer>();ArrayList<Integer> List2 = new ArrayList<Integer>();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; }}



原创粉丝点击