链表中倒数第k个结点
题目描述:
输入一个链表,输出该链表中倒数第k个结点。
解题思路:
采用快慢指针方法,先让a指针前进k步,然后ab指针一同前进,当a指针为null时,返回b指针即可。
注意:
考虑特殊情况,比如链表为空,或者链表的长度小于k等。
下面是我的Java代码:
/*
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(null == head){
return null;
}
ListNode temp = head;
int length = 0;
while(null != temp){
temp = temp.next;
length++;
}
if(length<k){
return null;
}
ListNode gok = head;
int i = k ;
while(i > 0){
gok = gok.next;
i--;
}
while (null != gok){
head = head.next;
gok = gok.next;
}
return head;
}
}