此题为力扣链表题目
📌 文章目录:
题目:👇
1️⃣.题目解析
题目要求给定一个下标 k 这个 k 为链表倒数的位置,需要得到的这个倒数结点的数值,利用快慢指针的思想,快指针先走 k - 1 步,slow 和 fast 再同时走,当fast 走到最后一个结点的时候,此时的 slow 刚好是倒数第 k 个结点返回 slow 的数值即可
图解代码:
2️⃣.代码实现
步骤一、定义两个结点类型变量 fast 和 slow
ListNode fast = head;
ListNode slow = head;
步骤二、fast 先走 k-1 步
while(k - 1 != 0){
fast = fast.next;
k--;
}
步骤三、fast 和 slow 同时走,直到 fast 走到最后一个结点
while(fast.next != null){
slow = slow.next;
fast = fast.next;
}
步骤四、返回 slow 的数值
return slow.val;
3️⃣.全部代码
class Solution {
public int kthToLast(ListNode head, int k) {
ListNode fast = head;
ListNode slow = head;
while(k - 1 != 0){
fast = fast.next;
k--;
}
while(fast.next != null){
slow = slow.next;
fast = fast.next;
}
return slow.val;
}
}