Java编程实现从尾到头打印链表代码实例

  

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

  

首先定义链表结点

        公开课ListNode {   int val;   ListNode下=零;   ListNode (int val) {   这一点。val=val;   }   }      

<>强思路1:此题明显想到是利用栈的思想,后进先出,先遍历链表,依次将结点值进栈。最后在遍历栈出栈。

        公共静态StackprintListReverse_Stack (ListNode ListNode) {   Stack堆栈=new Stack ();   如果(listNode !=null) {   ListNode p=ListNode;   而(p !=null) {   stack.add (p.val);   p=p.next;   }   }   返回栈;   }      

<>强思路2:直接遍历链表,按照头插法依次插入ArrayList即可

        公共静态ArrayListprintListFromTailToHead (ListNode ListNode){//表头也存储元素   ArrayList打?new ArrayList ();   如果(listNode==null) {   返回打印;   }   int添加=0;   ListNode p=ListNode;   而(p !=null) {   打印。添加(0,p.val);   p=p.next;   }   返回打印;   }      

<>强思路3:可以使用递归的思想(本质也是栈的思想)

        公共ArrayListprintListReversely_Recursively (ListNode ListNode) {   ArrayList打?new ArrayList ();   如果(listNode==null) {   返回打印;   }   print.addAll (printListReversely_Recursively (listNode.next));   print.add (listNode.val);   返回打印;   }      

<强>总结

  

以上就是本文关于Java编程实现从尾到头打印链表代码实例的全部内容,感兴趣的朋友可以参阅:用Java打印九九除法表代码分析,Java程序打印奥林匹克标志方法详解,Java编程用指定字符打印菱形实例以及本站其他相关专题,希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对网站的支持!

Java编程实现从尾到头打印链表代码实例