题解 | #链表中倒数第k个结点#
链表中倒数第k个结点
https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a
import java.util.*; /* 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; } // 利用两个临时节点解决问题 ListNode fastlistNode = head; ListNode slowlistNode = head; // 判断 k<=0 的不合法情况 if (k <= 0) { return null; } // 先让fast走 k-1 步 for (int i = 0; i < k - 1; i++) { fastlistNode = fastlistNode.next; // 判断 k>size 的不合法情况 if (fastlistNode == null) { return null; } } // fast和slow 同时遍历数组,当 fast.next==null 的时候,返回slow while (fastlistNode.next != null) { fastlistNode = fastlistNode.next; slowlistNode = slowlistNode.next; } return slowlistNode; } }