題目:輸入一個連結清單,輸出該連結清單中倒數第k個結點。
“快慢指針”解題:我們取兩個點A、B。都從起點出發,然後A提前出發,走到k-1時B在出發。A到達終點時,B恰好在K點。
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head==null||k<=0){
return null;
}
ListNode fast = head;
ListNode low = head;
while(k-->1){
if(fast.next==null){
return null;
}
fast = fast.next;
}
while(fast.next!=null){
fast = fast.next;
low = low.next;
}
return low;
}
}
- 時間複雜度:O(n)。
- 空間複雜度:O(1)。