从尾到头打印链表---剑指Offer
生活随笔
收集整理的這篇文章主要介紹了
从尾到头打印链表---剑指Offer
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從尾到頭打印鏈表
輸入一個鏈表,從尾到頭打印鏈表每個節點的值。
解題思路:
1. 將帶有頭結點的鏈表順序的從頭到尾加入到ArrayList集合
2. 使用Collections工具類將ArrayList集合中的元素翻轉,就可以得到從尾到頭的一個順序表
提供API說明:
ArrayList對象操作(可變長順序表)
- add(T object)方法:將object加入到線性表末尾
Collections工具類操作
- reverse(List list)方法:將list集合中的元素進行翻轉
代碼如下:
import java.util.ArrayList; import java.util.Collections; class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;} } public class Solution {public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {ArrayList<Integer> tailToHead = new ArrayList<Integer>();ListNode target = listNode;while(target!=null){tailToHead.add(target.val);target = target.next;}Collections.reverse(tailToHead);return tailToHead;} }當鏈表規模為n的時候:
空間復雜度為O(n):tailToHead的長度為n
時間復雜度為O(n):鏈表遍歷復雜度為O(n),reverse函數復雜度為O(n/2)
(PS:其中還帶有tailToHead擴容時復制所需的空間復雜度和時間復雜度復雜度,我們暫時忽略不計)
總結
以上是生活随笔為你收集整理的从尾到头打印链表---剑指Offer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020快手移动游戏行业玩家数据价值报告
- 下一篇: 能力清单:2020年SAAS的思考框架