- 时间复杂度 O(N)O(N) : NN 为链表长度;总体看, former 走了 NN 步, latter 走了 (N-k)(N−k) 步。
- 空间复杂度 O(1)O(1) : 双指针 former , latter 使用常数大小的额外空间。
引用自:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/solution/mian-shi-ti-22-lian-biao-zhong-dao-shu-di-kge-j-11/
class Solution {
public ListNode getKthFromEnd(ListNode head, int k) {
ListNode former = head, latter = head;
for(int i = 0; i < k; i++)
former = former.next;
while(former != null) {
former = former.next;
latter = latter.next;
}
return latter;
}
}
class ListNode {
int val;
ListNode nextNode;
ListNode(int x){
val = x;
}
}