/**********************************************************************************************
* func name : LList_Last_k_find
* function : Find the last k node of link list and print data
* func parameter :
* @Head :address of the head node
* return resuolt : Find success result (true or failse)
* author : liaojx2016@126.com
* date : 2024/04/21
* note : None
* modify history : None
* function section: v1.0
*
**********************************************************************************************/
bool LList_Last_k_Del(LList_t *Head, int k)
{
//错误判断
if (NULL == Head->next)
{
return false;
}
LList_t *p = Head;//参考指针
LList_t *kp = Head;//指向倒数第k个结点的目标指针
//参考指针先移动k个结点
for (int i = 0; i < k; i++)
{
//printf("p.data=%d,p.next=%#x\n", p->data, p->next);
//当还没移动k个单位,参考结点已指向尾指针,说明没有倒数第k个结点,直接退出函数,并输出提示
if (p->next == NULL)
{
printf("Link list note count is less than %d\n", k);
return false;
}
p = p->next;
}
//目标结点再移动一个单位
kp = kp->next;
//此时参考节点与目标结点已经相差k个单位
//循环使得参考指针和目标指针同事移动一个单位,直到参考指针到达尾节点,目标指针到达倒数第k个结点的指定位置
while (p->next)
{
p = p->next;
kp = kp->next;
}
//输出目标结点的数据域
printf ("data of the last %d node is %d\n",k,kp->data);
return true;
}

数据结构单向链表——找到并输出倒数第k个结点的数据的更多相关文章

  1. 数据结构和算法之单向链表二:获取倒数第K个节点

    我们在做算法的时候或多或少都会遇到这样的问题,那就是我们需要获取某一个数据集的倒数或者正数第几个数据.那么今天我们来看一下这个问题,怎么去获取倒数第K个节点.我们拿到这个问题的时候自然而然会想到我们让 ...

  2. 单链表输出倒数第k个结点值(栈实现)

    思路1:定义两个指针变量p和q,初始时均指向头节点的下一个节点(链表的第一个节点),p指针沿链表移动: 当p指针移动到第k个节点时,q指针开始与p指针同步移动, 当p指针移动到最后一个节点时,q指针所 ...

  3. 【剑指Offer面试题】 九度OJ1517:链表中倒数第k个结点

    鲁棒性是指程序可以推断输入是否符合规范要求,并对不和要求的输入予以 合理的处理. 题目链接地址: http://ac.jobdu.com/problem.php?pid=1517 题目1517:链表中 ...

  4. 剑指Offer - 九度1517 - 链表中倒数第k个结点

    剑指Offer - 九度1517 - 链表中倒数第k个结点2013-11-30 02:57 题目描述: 输入一个链表,输出该链表中倒数第k个结点.(hint: 请务必使用链表.) 输入: 输入可能包含 ...

  5. 6.查找单链表中的倒数第k个结点

    普通思路:先将整个链表从头到尾遍历一次,计算出链表的长度size,得到链表的长度之后,就好办了,直接输出第(size-k)个节点就可以了(注意链表为空,k 为0,k为1,k大于链表中节点个数时的情况) ...

  6. [华为]输出单向链表中倒数第k个结点

    输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int       m_nKey; ListNode* m_ ...

  7. 【编程题目】输入一个单向链表,输出该链表中倒数第 k 个结点

    第 13 题(链表):题目:输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表的尾指针.链表结点定义如下: struct ListNode {int m_nKey;Lis ...

  8. 输出单向链表中倒数第k个结点

    描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int       m_nKey; ListNode* ...

  9. 输入一个单向链表,输出该链表中倒数第K个结点

    输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...

  10. [PHP] 数据结构-输出链表倒数第k个结点PHP实现

    输入一个链表,输出该链表中倒数第k个结点.第一个指针走(k-1)步,到达第k个节点,两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了 <?php clas ...

随机推荐

  1. [Linux]将ArchLinux安装到U盘

    将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安装教程,同时由于当时硬盘空间不太够于是就打算安装到U盘上,也因此踩了不少坑. 但128G的U盘都拿来装Arch的话未免也太浪费了 ...

  2. #二分,负环#JZOJ 3852 单词接龙

    题目 只要一个单词的最后两个字母和另一个单词的前两个字母相同,那么这两个单词就可以有序的连接起来.给出\(n\)个单词组成单词环,求所有环的环中单词平均长度最大值. 分析 二分答案,判断是否存在正环( ...

  3. 如何利用OpenHarmony ArkUI的Canvas组件实现涂鸦功能?

    简介 ArkUI是一套UI开发框架,提供了开发者进行应用UI开发时所需具备的能力.随着OpenAtom OpenHarmony(以下简称"OpenHarmony")不断更新迭代,A ...

  4. Avalonia的自定义用户组件

    Avalonia中的自定义用户控件 Avalonia是一个跨平台的.NET UI框架,它允许开发者使用C#和XAML来构建丰富的桌面应用程序. 自定义用户控件(UserControl)是Avaloni ...

  5. Makefile 基础教程:从零开始学习

    在软件开发过程中,Makefile是一个非常重要的工具,它可以帮助我们自动构建程序,管理程序依赖关系,提高开发效率.本篇博客将从基础开始,介绍Makefile的相关知识,帮助大家快速掌握Makefil ...

  6. 1. Vectors and Linear Combinations

    1.1 Vectors We have n separate numbers \(v_1.v_2.v_3,...,v_n\),that produces a n-dimensional vector ...

  7. C++调用Python-6:调用Python类

    # mytest.py class Test: def hello(self): print("this is test class hello function no params ret ...

  8. cmd中怎么清屏--cls

    平时我们在 Linux 系统中清除屏幕 用的命令是:  clear 现在在Windows上用的清屏命令是 : cls

  9. MogDB/openGauss中merge的语法解析

    MogDB/openGauss 中 merge 的语法解析 近期了解学习了 MogDB/openGauss 中 merge 的使用,merge 语法是根据源表对目标表进行匹配查询,匹配成功时更新,不成 ...

  10. 【直播回顾】Hello HarmonyOS进阶课程第五课——原子化服务

    由HDE李洋老师主讲的Hello HarmonyOS进阶系列应用篇第五课<原子化服务>, 已于6月1日晚上 19 点在HarmonyOS社群内成功举行.本节课李洋老师带领大家了解Harmo ...