题目:输入一个链表,输出链表中倒数第k个节点
- 设置快慢指针,第一个指针先走K个节点,然而第二个指针再开始后,当第一个指针走到最后的时候,第二指针指向的位置就是倒数第K个节点。
-考虑异常情况
- 输入链表为空。
- K的值大于链表长度。
- K的值不能为0。
public class FindKList {
public int Find(ListNode head,int k){
if(k==0||head==null)
return -1;
ListNode pAhead = head;
ListNode pBehind = head;
for(int i=0;i<K-1;i++){
if(pAhead.next!=null)
pAhead = pAhead.next;
else
return -1;
}
while(pAhead!=null){
pAhead = pAhead.next;
pBehind = pBehind.next;
}
return pBehind.val;
}
}