劍指offer刷題第三題
阿新 • • 發佈:2019-02-26
時間復雜度 val 遍歷 href ret ger 思路 his int
第三題 從尾到頭打印鏈表
思路:一種是反轉鏈表再輸出,這樣會改變原來結構;另一種是正向遍歷,將結果存入棧中,再依次出棧即可,或者使用遞歸,也是同樣的道理。
時間復雜度:O(n)。
代碼:
/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { Stack<Integer> stack = new Stack<>(); while(listNode != null) { stack.add(listNode.val); listNode = listNode.next; } ArrayList<Integer> result = new ArrayList<>(stack.size()); while(!stack.empty()) { result.add(stack.pop()); } return result; } }
劍指offer刷題第三題