剑指 Offer 22. 链表中倒数第k个节点
双指针解法(快慢指针)
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* getKthFromEnd(ListNode* head, int k)
{
ListNode* node_h = head;
ListNode* node_k = head;
while (k-- > 0)
node_k = node_k->next;
while (node_k != nullptr)
{
node_h = node_h->next;
node_k = node_k->next;
}
return node_h;
}
};