剑指 Offer 22. 链表中倒数第k个节点
解题思路
链表嘛,第一反应快慢指针。让快指针先走k 步,然后快慢同时前进相同的步数,快指针走到null,慢指针的位置就是倒数第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 slow=head;
ListNode fast=head;
while(k-->0){
fast=fast.next;
}
while(fast!=null){
slow=slow.next;
fast=fast.next;
}
return slow;
}
}