2025年5月28日 星期三

19. Remove Nth Node From End of List

 19. Remove Nth Node From End of List

難度: Medium
類型: Linked list, Two Pointers,
CPP程式下載: 19.cpp

前情題要:
移除從後面數過來第N個Node












思考方式:
因為是 Linked list, 要掃過一輪才知道是共有幾個Node。
1. 可以掃兩輪, 第二輪就知道要移除的那個 Node, 把它前一個 Node 的 next 指向下一個Node 即可。
2. 因為我看到總共最大不超過30個Node, 那我直接把每個Node的位置都存起來, 就不必跑第二輪。花記憶體空間, 但較快。不過因為一輪最多也才30次, 應該差別也不大, 反而比較浪費記憶體空間。不過已經寫完就算了。

複雜度思考:

Time Complexity: O( N ) 

Space Complexity: O( N*sizeof(ListNode* )

結果:

Runtime: 0 ms, Beats: 100%

Memory: 14.97 MB, Beats: 59.51%