找到倒数一K个节点,可以定义2个节点,2个节点相差K-1个节点,即当前面的节点的下一个节点的next等于空时,此时当前节点已到链表最有一个节点,则后面的节点则就是要寻找的倒数第K个节点。
public ListNode FindKthToTail(ListNode head,int k) {
if (head == null || k <= 0) {
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;
}