力扣打卡:剑指 Offer 22. 链表中倒数第k个节点
使用虚拟的头节点,使得头节点像普通节点一样可以直接索引
减少判断的条件
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode getKthFromEnd(ListNode head, int k) { ListNode dummy = new ListNode(); dummy.next = head; ListNode fast=head,slow=dummy; while(fast != null && k!=0){ k--; fast=fast.next; if(fast==null && k!=0) return head; // 如果删除的范围超出了长度,直接返回原节点 } while(fast!=null){ // 一直遍历到末尾 fast=fast.next; slow=slow.next; } return slow.next; } }