题目:输入一个链表,输出该链表中倒数第k个结点。
分析:可以定义两个变量,ahead和behind,先让ahead走k步这时behind在头结点,最后一起往后走直到ahead到达尾部,这时behind的位置就是倒数第k个节点。
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head==null||k==0){
return null;
}
ListNode ahead=head;
ListNode behind=null;
for(int i=0;i<k;i++){
if(ahead!=null){
ahead=ahead.next;
}else{
return null;
}
}
behind=head;
while(ahead!=null){
ahead=ahead.next;
behind=behind.next;
}
return behind;
}
}