leetcode : Remove Nth Node From End of List
runtime 0 ms, beats 100% of cpp submissions
O(n) solution with explanation
tags: linked list, pointer
🔗 link
Remove Nth Node From End of List
📖 description
給定一個 linked list ,刪掉倒數第 k 個點
🧠 solution
為了解決這個問題,我們可以先遍歷一次 list ,再根據每個節點標記編號,但實際上,這題可以用一個非常精美的方式解決,空間複雜度為 O(1) 。
這個技巧就是 slow pointer and fast pointer ,我們維護一個 nextn_ptr 走在 next_ptr 的前 k 步,而如果 nextn_ptr 走到底了, next_ptr 就會是我們需要刪除的倒數第 k 個點。
⏳ time complexity
遍歷一次,時間複雜度 O(n)
總時間複雜度 O(n)
📝 code
1 | class Solution { |