题目描述
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
我的解题
快慢指针
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
int kthToLast(ListNode* head, int k) {
ListNode *p=head, *q=head;
for(int i=0; i<k; i++) q=q->next;
while(q!=nullptr)
{
q=q->next;
p=p->next;
}
return p->val;
}
};
执行用时 :4 ms, 在所有 C++ 提交中击败了79.14%的用户
内存消耗 :12 MB, 在所有 C++ 提交中击败了100.00%的用户