程序员面试金典:返回倒数第 k 个节点

返回倒数第 k 个节点

    • 题目描述
    • 我的解题

题目描述

实现一种算法,找出单向链表中倒数第 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%的用户

你可能感兴趣的:(C++,leetcode,算法)