题目描述
输入一个链表,输出该链表中倒数第k个结点。
Solution
指针kNode先移动k-1个结点,指针cur和kNode保持k-1个结点的距离一直移动至kNode到达最后一个结点
Time Complexity: O(n)
Space Complexity: O(1)
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if (head == null || k <= 0) return null;
ListNode kNode = head;
ListNode cur = head;
int i = 0;
while (i < k - 1) {
if (kNode.next != null) {
kNode = kNode.next;
i++;
} else {
return null;
}
}
while (kNode.next != null) {
cur = cur.next;
kNode = kNode.next;
}
return cur;
}
}