输出单链表倒数第K个结点值

方法一:

两次遍历链表。第一次遍历,计算链表长度,然后计算链表倒数第m个结点的正数位置k,判断位置是否合法,如果不合法,输出NOT FOUND,否则,进行第二次遍历链表,查找链表正数第k个位置的数据节点,即为所求结点。

具体代码略。。。。

方法二:

算法思想:先搜索距离第一个数据节点m个位置的结点,用指针pCur指向第m+1个结点,用pNode指向第1个结点。每次移动两个指针,当pCur指针指向空结点时,pNode指针指向倒数第m个结点,即为所求结点。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct LinkNode {ElemType data;LinkNode* next;
}LinkNode, * LinkList;
//尾插法建立单链表
void creatLinkList(LinkList& L) {L = (LinkNode*)malloc(sizeof(LinkNode));L->next = NULL;LinkNode* pTail = L;int num;while (scanf("%d", &num) && num != -1) {LinkNode* pnode = (LinkNode*)malloc(sizeof(LinkNode));pnode->data = num;pnode->next = pTail->next;pTail->next = pnode;pTail = pnode;}
}
//打印输出
void printLinkList(LinkList L) {LinkNode* pCur = L->next;while (pCur != NULL) {printf("%d ", pCur->data);pCur = pCur->next;}
}
//查找倒数第m个结点
bool search(LinkList L, int m,int &num) {LinkNode* pCur = L->next;int count = 0;while (pCur != NULL) {count += 1;if (count == m) {break;}pCur = pCur->next;}if (pCur == NULL) {return false;}else {pCur = pCur->next;LinkNode* pnode = L->next;num = pnode->data;while (pCur != NULL) {pnode = pnode->next;num = pnode->data;pCur = pCur->next;}return true;}}
int main() {LinkList L;creatLinkList(L);int k;scanf("%d", &k);int num;if (search(L, k, num)) {printf("倒数第%d个结点为:%d\n", k, num);}else {printf("Not Found\n");}//printLinkList(L);return 0;
}

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

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

相关文章

手写SpringBoot(三)之自动配置

系列文章目录 手写SpringBoot&#xff08;一&#xff09;之简易版SpringBoot 手写SpringBoot&#xff08;二&#xff09;之动态切换Servlet容器 手写SpringBoot&#xff08;三&#xff09;之自动配置 手写SpringBoot&#xff08;四&#xff09;之bean动态加载 手写SpringBoot…

企业培训系统功能介绍

在当今知识经济时代&#xff0c;企业的竞争力在很大程度上取决于员工的专业能力和综合素质。为了适应不断变化的市场需求和技术进步&#xff0c;企业需要对员工进行持续有效的培训。一个高效的企业培训系统对企业人才培训至关重要。以下介绍一下企业培训系统的主要功能&#xf…

电脑文件msvcp120.dll丢失的解决方法详细分析,找多种靠谱方法修复

遇到msvcp120.dll文件丢失的问题实际上不算罕见&#xff0c;这往往是由于我们频繁使用电脑而导致的意外删除&#xff0c;或者是电脑受到病毒感染。当这类情况发生时&#xff0c;msvcp120.dll文件可能会被错误地移除或损坏&#xff0c;这便需要我们去进行修复。接下来&#xff0…

【系统架构师】-第18章-安全架构设计

(1)信息泄露&#xff1a;信息被泄露或透露给某个非授权的实体。 (2)破坏信息的完整性&#xff1a;数据被非授权地进行增删、修改或破坏而受到损失。 (3)拒绝服务&#xff1a;对信息或其他资源的合法访问被无条件地阻止。 (4)非法使用(非授权访问):某一资源被某个非授权的人或…

FA模型切换Stage模型组件切换之ServiceAbility切换DataAbility切换

ServiceAbility切换 FA模型中的ServiceAbility对应Stage模型中的ServiceExtensionAbility。Stage模型下的ServiceExtensionAbility为系统API&#xff0c;只有系统应用才可以创建。因此&#xff0c;FA模型的ServiceAbility的切换&#xff0c;对于系统应用和三方应用策略有所不同…

实践笔记-harbor搭建(版本:2.9.0)

harbor搭建 1.下载安装包&#xff08;版本&#xff1a;2.9.0&#xff09;2.修改配置文件3.安装4.访问harbor5.可能用得上的命令: 环境&#xff1a;centos7 1.下载安装包&#xff08;版本&#xff1a;2.9.0&#xff09; 网盘资源&#xff1a;https://pan.baidu.com/s/1fcoJIa4x…

上海人工智能实验室大模型算法岗(实习)面经分享

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总…

Linux部署Sonarqube+Gogs+Jenkins(一)

Linux部署SonarqubeGogsJenkins 一、1.Linux安装JDK11环境1. 本地进行上传2. 进入到/usr/java目录&#xff0c;并且进行解压3. 配置文件/etc/profile&#xff0c;配置环境变量4.让对应的配置文件生效5. 验证 二、Linux安装Python环境三、Linux安装Jenkins环境1、/usr目录下创建…

发表SCI论文对文凭有什么要求吗?SCI学历要求

sci论文是学术水平很高的文章&#xff0c;往往要通过课题研究&#xff0c;才能撰写出论文内容来。可以说作者没有一定的文凭&#xff0c;完不成sci论文的撰写&#xff0c;就不能发表。但这不代表文凭是sci论文发表的限制条件&#xff0c;实际上sci期刊对作者文凭没有要求&#…

WEPE系统安装纯净版window11教程(包含pe内系统安装方法)

目录 一.安装u盘启动盘 1.1制作安装系统引导盘 1.2下载保存windows镜像 1.3根据自己电脑品牌查询进入BIOS设置的方法 1.4我们成功进入了PE 二.重装系统 2.1遇到问题 2.2重新来到这个界面 三.PE中基本软件的作用 四.学习声明 今天不敲代码&#xff0c;今天来讲讲We P…

【[蓝桥杯 2017 省 A] 正则问题】

题目描述 考虑一种简单的正则表达式&#xff1a; 只由 x ( ) | 组成的正则表达式。 小明想求出这个正则表达式能接受的最长字符串的长度。 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是&#xff1a; xxxxxx&#xff0c;长度是 6 6 6。 输入格式 一个由 x()| 组成的正…

ubuntu 安装 cloudcompare(两种方法)

方法一 &#xff1a;从 snap 安装 &#xff08;推荐&#xff09; 安装简单&#xff0c;基本上功能都有&#xff08;读写保存las&#xff0c;pcd&#xff0c;标注等&#xff09; 安装&#xff1a; sudo apt-get update sudo apt install snap sudo snap install cloudcompare…

Node | Node.js 版本升级

目录 Step1&#xff1a;下载 Step2&#xff1a;安装 Step3&#xff1a;换源 发现其他博客说的 n 模块不太行&#xff0c;所以老老实实地手动安装 Step1&#xff1a;下载 Node 中文官网&#xff1a;https://nodejs.cn/download 点击后&#xff0c;将会下载得到一个 .msi 文件…

WIFI驱动移植实验:配置 Linux 内核

一. 简介 前面文章删除了Linux内核源码&#xff08;NXP官方的kernel内核源码&#xff09;自带的 WIFI驱动。 WIFI驱动移植实验&#xff1a;删除Linux内核自带的 RTL8192CU 驱动-CSDN博客 将正点原子提供的 rtl8188EUS驱动源码添加到 kernel内核源码中。文章如下&#xff1a…

PID算法控制5840-31ZY编码器直流减速电机旋转特定角度(一)

模块分析 在本工程中&#xff0c;使用stm32做主控芯片输出PWM波&#xff0c;TB6112做电源驱动带动5840-31ZY编码器直流减速电机旋转特定角度 有如下模块 TB6112驱动模块 TB6112是性能优于常见L298N的一款电机驱动芯片&#xff0c;体积更小效率更高发热少 其接线如图&#x…

HarmonyOs开发:轮播图Banner组件封装与使用

前言 轮播图在每个项目中都很常见&#xff0c;鸿蒙中在容器组件中也提供了Swiper组件&#xff0c;用于子组件滑动轮播显示&#xff0c;和前端的使用起来也是异曲同工&#xff0c;我们先看下基本的用法。 Swiper() {ForEach(["1", "2", "3", &quo…

每日一题(反转链表)

给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 思路一 运用迭代的算法&#xff0c;把头指针…

【智能算法】晶体结构算法(CryStAl)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年&#xff0c;S Talatahari等人受到晶体自然结构启发&#xff0c;提出了晶体构造算法&#xff08;Crystal Structure Algorithm , CryStAl&#xff09;。 2.算法原理 2.1算法思想 CryStAl受…

Java计数排序知识点(含面试大厂题和源码)

计数排序&#xff08;Counting Sort&#xff09;是一种线性时间复杂度的排序算法&#xff0c;适用于整数数据。它的基本思想是将输入的数据值转化为键存储在额外开辟的数组空间中。计数排序不是基于比较的排序算法&#xff0c;因此它可以突破 O(n log n) 的时间下界&#xff0c…

关于举办第十五届蓝桥杯全国软件和信息技术专业人才大赛——视觉艺术设计赛的通知

各高等院校及相关单位&#xff1a; 为贯彻落实《中国教育现代化2035》和《国务院关于推进文化创意和设计服务与相关产业融合发展的若干意见》&#xff0c;加快数字内容产业发展&#xff0c;推动文化产品和服务的生产、传播、消费的数字化、网络化进程&#xff0c;强化文化对信…