输入一个链表,输出该链表中倒数第k个结点

mac2026-01-27  1

建立两个指针,一快一慢,fast,slow

public ListNode FindKthToTail(ListNode head,int k) { if (head == null) { //如果节点为null,返回null return null; } int size = size(head); if (k <= 0 || k > size) { //如果 k 小于等于0或者 k 大于链表节点个数则为错误 return null; } ListNode fast = head; ListNode slow = head; for (int i = 0; i < k; i++) { //先往后移动 k 个节点 fast = fast.next; } while (fast != null) { fast = fast.next; slow = slow.next; } return slow; } public int size(ListNode head) { int size = 0; for (ListNode node = head; node != null; node = node.next) { size++; } return size; }
最新回复(0)