输入一个链表,输出该链表中倒数第k个结点。
思路:
先定义两个指针,快引用 fast 和慢引用 slow,让 fast 先走 k-1 步,当 fast.next 为空的时候 slow 就是倒数第 k 个节点
看图说明一下
/*
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 (head == null){
return null;
}
if ( k <= 0 ){
System.out.println("k 不合法");
return null;
}
ListNode fast = head;
ListNode slow = head;
while (k - 1 > 0){
if (fast.next != null){
fast = fast.next;
k--;
}else{
System.out.println("没有这个节点");
return null;
}
}
while (fast.next != null){
fast = fast.next;
slow = slow.next;
}
return slow;
}
}