JAVA實現從尾到頭列印連結串列(《劍指offer》)
阿新 • • 發佈:2018-12-31
最近在刷《劍指offer》裡的程式設計題,但是網上關於《劍指offer》的解答多半是C或者C++的,而且官方(作者)也是在用C++進行講解,這裡自己用java寫了一些題目的解答程式碼(當然也有部分是借鑑了網上別人的解答的,出處未註明敬請之處請指出,侵刪),希望能對大家的學習有所幫助。
題目描述:
輸入一個連結串列,從尾到頭列印連結串列每個節點的值。 牛客網題目截圖:ps.灰色註釋部分已定義好連結串列的結構類
解答:
/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ importjava.util.ArrayList; importjava.util.Stack; publicclass Solution { publicArrayList<Integer> printListFromTailToHead(ListNode listNode) { Stack<Integer> stack=newStack<Integer>(); //佇列和棧是一對好基友,從尾到頭列印連結串列,當然離不開藉助棧的幫忙啦 //所以,先把連結串列裡的東西,都放到一個棧裡去,然後按順序把棧裡的東西pop出來,就這麼簡單 while(listNode!=null){ stack.push(listNode.val); listNode=listNode.next; } ArrayList<Integer> list=newArrayList<Integer>(); while(!stack.isEmpty()){ list.add(stack.pop()); } returnlist; } }