[C/C++]数据结构 链表OJ题 : 链表中倒数第k个结点

描述

输入一个链表,输出该链表中倒数第k个结点。

 方法一:  暴力求解

        先遍历一遍整个链表获取链表长度len,则倒数第k个结点就是整数第len-k个结点

struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {struct ListNode* cur = pListHead;int len = 0;while (cur) {len++;cur = cur->next;}int num = len - k;cur = pListHead;if (num < 0) {return NULL;}while (num--) {cur = cur->next;}return cur;
}

注意: 这里要特别注意一定要判断len-k是否小于0,因为如果k大于链表长度,那么倒数第k个节点就为空指针

方法二: 快慢指针

        定义指针slow和fast,先让fast指针往前走k步,这样两个指针就相隔k个位置,再让俩个指针一起走,当fast指向空时,slow指针就指向的是倒数第k个结点,如图所示:

假设要找倒数第2个结点

 

struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {struct ListNode* slow = pListHead;struct ListNode* fast = pListHead;//快指针先走k步while (k--) {if (fast == NULL) {return NULL;}fast = fast->next;}while (fast) {slow = slow->next;fast = fast->next;}return slow;
}

注意:这里同样要判断一下和方法一同样的问题,当fast先向前走k步指向空时就说明k大于链表长度了,返回NULL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/164434.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xcode15更新内容

参考博客&#xff1a; 【WWDC 2023】Xcode 15 更新内容 文章目录 1. xcode15起&#xff0c;项目内创建的图片可以使用点语法访问2.2. UIKit项目也可以使用预览功能3. Xcode新增标签功能4.Log分类 1. xcode15起&#xff0c;项目内创建的图片可以使用点语法访问 2.2. UIKit项目也…

Spring boot集成sentinel限流服务

Sentinel集成文档 Sentinel控制台 Sentinel本身不支持持久化&#xff0c;项目通过下载源码改造后&#xff0c;将规则配置持久化进nacos中&#xff0c;sentinel重启后&#xff0c;配置不会丢失。 架构图&#xff1a; 改造步骤&#xff1a; 接着我们就要改造Sentinel的源码。…

【PHP】医院HIS手术麻醉临床信息管理系统源码 实现术前、术中、术后全流程管理

手术麻醉系统是一套以数字形式与医院信息系统&#xff08;如HIS、EMR、LIS、PACS等&#xff09;和医疗设备等软、硬件集成并获取围手术期相关信息的计算机系统&#xff0c;其核心是对围手术期患者信息自动采集、储存、分析并呈现。该系统通过整合围手术期中病人信息、人员信息、…

龙芯loongarch64服务器编译安装scipy

前言 根据我之前的文章介绍&#xff0c;龙芯loongarch64服务器中的很多python依赖包安装有问题&#xff0c;发现其中安装的"scikit-learn"就无法正常使用&#xff0c;所有这里在 pip3 install scikit-learn -U -i https://pypi.tuna.tsinghua.edu.cn/simple 的时候发…

基于SSM的酒店客房管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

一种可以实现安全便捷文件摆渡的跨网文件安全交换软件

为了保护数据的安全性和完整性&#xff0c;很多企业都采用了内外网物理隔离的方式&#xff0c;防止核心数据泄露或被恶意篡改。然而&#xff0c;这也给企业内部或与外部合作伙伴之间的文件交换带来了很多不便和挑战。如何在保证数据安全的前提下&#xff0c;实现跨网文件的快速…

家居品牌怎么做小红书投放,寻找家居达人的方式有哪些?

在当今社交媒体的时代&#xff0c;找到优秀的家居博主并不困难。但是&#xff0c;在找家居行业博主的时候&#xff0c;了解家居行业特性就很重要&#xff0c;今天来为大家分享一下家居品牌怎么做小红书投放&#xff0c;寻找家居达人的方式有哪些&#xff1f; 一、家居行业特性 …

Qt插件开发_入门教程

文章目录 前言插件的好处具体流程1. 第一,我们先创建一个主框架应用(**第一个工程**)2. GUI 设计 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f215270ccfac4e038e7261c4b4891ec1.png)3. 创建动态库项目(**第2个工程**)4. 给插件项目添加qt界面类5.在插件工程添加一个头…

基于YOLOv8与DeepSORT实现多目标跟踪——算法与源码解析

一、概述 "目标跟踪 (Object Tracking)"是机器视觉领域中的一个重要研究领域。根据跟踪的目标数量&#xff0c;可以将其分为两大类&#xff1a;单目标跟踪 (Single Object Tracking&#xff0c;简称 SOT) 和多目标跟踪 (Multi Object Tracking&#xff0c;简称 MOT)…

20道高频CSS面试题快问快答

面试中的快问快答 快问快答的情景在面试中非常常见。 在面试过程中&#xff0c;面试官通常会使用快问快答的方式来快速评估面试者的基础知识、思维能力和反应速度。 这种情景下&#xff0c;面试官会提出一系列简短的问题&#xff0c;并期望面试者能够迅速做出回答或提供简洁明…

使用request库的get方法发起GET请求

// 导入所需的库 const request require(request); const cheerio require(cheerio);// 设置代理信息&#xff0c;proxy_host: www.duoip.cn, proxy_port: 8000 const proxy {host: jshk.com.cn,port: 1234 };// 定义要爬取的URL const url http://localhost:9200/_cat/ind…

蓝桥杯:分数

题目 思路 等比数列求和&#xff0c;手算然后输出 代码&#xff08;已过&#xff09; #include <iostream> using namespace std; int main() {// 请在此输入您的代码int a1024*1024-1;int b1024*512;cout<<a<<"/"<<b;return 0; }