LeetCode | 面试题 02.02. 返回倒数第 k 个节点

LeetCode | 面试题 02.02. 返回倒数第 k 个节点

OJ链接
LeetCode | 面试题 02.02. 返回倒数第 k 个节点_第1张图片

  • 思路:定义两个快慢指针,让快指针先提前走k个节点,然后再让慢结点和快结点一起走,当快指针 == NULL时,慢指针就是倒数第k个节点

LeetCode | 面试题 02.02. 返回倒数第 k 个节点_第2张图片

代码如下:

int kthToLast(struct ListNode* head, int k){
    struct ListNode* slow,*fast;
    slow = fast = head;
    while(k--)
    {
        if(fast == NULL)
            return NULL;
        fast = fast->next;
    }
    while(fast != NULL)
    {
        slow = slow->next;
        fast = fast->next;
    }
    return slow->val;
}

你可能感兴趣的:(LeetCode,链表,数据结构)