面试金典题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;
    }
};
相关推荐
小羊没烦恼!3 分钟前
异步编程:线程概述及使用
java·开发语言·mysql·算法·c#
wanderist.10 分钟前
202609CSP认证P3
算法
学Linux的语莫35 分钟前
python中类的常见写法
开发语言·python·状态模式
需要82637 分钟前
容器化 Java:镜像瘦身与 JVM 容器感知(cgroup)
java·开发语言·jvm
云淡风轻~窗明几净1 小时前
角谷猜想最接近严格证明的测试 Version1.1.1
人工智能·算法·机器学习·图论
dyxal1 小时前
A2A 协议 v1.0 完全指南:方法名、Agent Card、三种绑定与 FastAPI 实战
开发语言·qt·fastapi
譕痕1 小时前
Rabbit 实例
java·开发语言·java-rabbitmq
机器学习之心1 小时前
PINN × SVM × NSGA-II × 熵权TOPSIS:一套跑通「建模—优化—决策」的多目标优化框架
算法·机器学习·支持向量机
综合简报1 小时前
黑五海外发稿投给谁?三类海外媒体发稿渠道的分工
开发语言·php·媒体
大风起兮云飞扬丶2 小时前
Java——线程池
java·开发语言