面试金典题2.2

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

复制代码
输入: 1->2->3->4->5 和 k = 2
输出: 4

本题的思路其实很简单,总共n个数,找倒数第k个数,其实就是找第n-k个数。主要的问题是这个题放在链表里面该如何解决。关于链表的题,其中最常用的方法就是双指针。定义两个指针,都指向头结点,让其中一个指针先移动k次,然后让两个指针同时开始移动,直到先移动的那个指针指向空,则后移动的指针便刚好指向倒数第k个结点。

leetcode代码

cpp 复制代码
/**
 * 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;
        ListNode *q=head;
        while(k--){
            q=q->next;
        }
        while(q!=nullptr){
            p=p->next;
            q=q->next;
        }
        return p->val;
    }
};
相关推荐
毋语天13 小时前
Python 常用内置模块详解:日志、随机数、时间、OS 与 JSON
开发语言·python
Asa1213813 小时前
Nature Microbiology|跨微生物界菌株水平传播推断的新算法TRACS
算法
右耳朵猫AI13 小时前
Python技术周刊 2026年第14周
开发语言·python·okhttp
叼烟扛炮14 小时前
C++ 知识点22 函数模板
开发语言·c++·算法·函数模版
Tisfy14 小时前
LeetCode 2553.分割数组中数字的数位:模拟(maybe+翻转)——java也O(1)
java·数学·算法·leetcode·题解·模拟·取模
平行侠14 小时前
33水库抽样 - 从未知大小的流中等概率采样
数据结构·算法
求学中--14 小时前
鸿蒙网络请求从入门到精通:HttpURLConnection+第三方库,GET/POST/文件上传全覆盖
开发语言·php·harmonyos
吴声子夜歌14 小时前
Java——Integer与二进制算法
java·算法
Controller-Inversion14 小时前
42. 接雨水
数据结构·算法·leetcode
Controller-Inversion14 小时前
33. 搜索旋转排序数组
数据结构·算法·leetcode