链表中倒数第k个结点
题目
输入一个链表,输出该链表中倒数第k个结点。
思路
1.如果head是空的,返回空指针
2.如果k比listnode的长度要大,返回null
3.如果k比listnode的长度小,返回正确值即可。
思想:先求出listnode的长度,进行判断
1 2 3
len1 len2 len3
代码
public ListNode findKthToTail(ListNode head,int k) {
if (head == null)
return null;
int len = 0;
ListNode p = head;
while(p != null){
len++;
p = p.next;
}
if (k > len)
return null;
ListNode q = head;
for (int i = 0; i < len-k; i++) {
q = q.next;
}
return q;
}