求链表中的倒数第k个结点?
//链表中的倒数第 K 个结点
public ListNode FindKthToTail(ListNode head,int k){
ListNode fast = head;
ListNode slow = head;
if(k <= 0){
throw new RuntimeException("请输入自然数k!");
}
if(head == null) {
throw new RuntimeException("链表不能为空!");
}
for(int i = 0;i < k;i++){
if(fast != null){//先走k步
fast = fast.next;
}else {
throw new RuntimeException("k值大于了链表长度");
}
}
while (fast != null){//pre == null 时p指针指向倒数第k个结点
slow = slow.next;
fast = fast.next;
}
return slow;
}
近期评论