(链表)08-链表中倒数最后K个结点

发布时间 2023-11-19 19:27:33作者: StringBuilder

 1 import java.util.*;
 2 
 3 /*
 4  * public class ListNode {
 5  *   int val;
 6  *   ListNode next = null;
 7  *   public ListNode(int val) {
 8  *     this.val = val;
 9  *   }
10  * }
11  */
12 
13 public class Solution {
14     /**
15      * @param pHead ListNode类
16      * @param k int整型
17      * @return ListNode类
18      */
19     public ListNode FindKthToTail (ListNode pHead, int k) {
20         // 快指针
21         ListNode fast = pHead;
22         // 慢指针
23         ListNode slow = pHead;
24         // 寻找快指针的起始位置
25         for (int i = 0; i < k; i ++) {
26             if (fast == null) {
27                 return null;
28             }
29             fast = fast.next;
30         }
31         // 快慢指针同时移动
32         while (fast != null) {
33             fast = fast.next;
34             slow = slow.next;
35         }
36         // 返回结果
37         return slow;
38     }
39 }