题解 | #链表中倒数最后k个结点# 双指针
链表中倒数最后k个结点
https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9
import java.util.*; public class Solution { /** * 思路:双指针法 * 设置两个节点指向头结点,可以让p2先走k步,再让p1和p2同时走,当p2走到链表尾部的时候, * p1,就是链表倒数第k个节点,直接返回即可 * 这里考虑k可能超出范围,只需判断p2是否为null,就是是否会超出链表尾部 * 如果超出,直接返回null即可 * * @param pHead ListNode类 * @param k int整型 * @return ListNode类 */ public ListNode FindKthToTail (ListNode pHead, int k) { ListNode p1 = pHead; ListNode p2 = pHead; int c = 0; while(c < k){ if(p2 == null){ return null; } p2 = p2.next; c++; } while(p2 != null){ p1 = p1.next; p2 = p2.next; } return p1; } }