`
moxiaomomo
  • 浏览: 45409 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

查找链表的倒数第k个元素

阅读更多

设置两个指针,让其中一个指针比另一个指针先前移k步,然后两个指针同时往前移动。
循环直到先行的指针值为NULL时,另一个指针所指的位置就是所要找的位置。

template<class T>
struct ListNode        //链表节点元素,结构体
{
	T data;

	ListNode* next;
};

template<class T>
ListNode<T>* findElem(ListNode<T> *head,int k)
{
	ListNode<T> *ptr1,*ptr2;
	ptr1=ptr2=head;

	for(int i=0;i<k;++i) //前移k步
	{
		ptr1=ptr1->next;
	}

	while(ptr1!=NULL) //循环检测
	{
		ptr1=ptr1->next;
		ptr2=ptr2->next;
	}

	return ptr2;
}

1
2
分享到:
评论

相关推荐

    链表查找倒数第K个数

    链表功能的一个扩展延伸,查找倒数第K个元素,是某年考研题

    2009计算机考研题:查找链表中倒数第k个结点

    本题目的核心是查找链表中的倒数第k个节点,这是一个经典的链表问题,常见于面试和考研试题中。下面我们将深入探讨这个问题以及如何通过编程解决。 首先,链表是由一系列节点组成的数据结构,每个节点包含一个数据...

    怎样找到链表倒数第k个元素

    题目:输入一个单向链表,输出该链表中倒数第k个结点。...分析:使用两个指针,low,fast,先把fast的指针指向第k个元素,然后low和fast同时向后遍历,当fast遍历到结尾时,low正好遍历到倒数第k个。

    求链式线性表的倒数第K项_C语言_K._

    注意,这个函数假设K是基于0的索引,即链表的最后一个元素是倒数第0个,倒数第1个是倒数第二个,依此类推。 在提供的文件列表中,“求链式线性表的倒数第K项.c”应该包含了这个功能的具体实现,而“求链式线性表的...

    C语言实现输出链表中倒数第k个节点

    总的来说,这个C语言程序实现了链表中倒数第k个节点的查找功能,通过遍历和双指针技巧有效地解决了问题。在实际应用中,这种技巧经常用于处理链表相关的数据结构问题,比如寻找中点节点或删除特定位置的节点等。理解...

    链表中倒数第k个节点(双指针python)1

    解决“链表中倒数第k个节点”这个问题的关键在于理解链表的结构以及如何有效地遍历它。这里我们将探讨双指针法,这是一种在链表问题中常用且高效的方法。 首先,我们要定义链表节点的结构。在Python中,我们可以...

    python实现获取单向链表倒数第k个结点的值示例

    本篇将详细讲解如何使用Python实现获取单向链表倒数第k个结点的值,并通过实例分析相关操作技巧。 首先,我们需要定义链表的节点类`Node`,它包含一个数据项`item`和一个指向下一个节点的引用`next`。节点的初始化...

    PHP获取链表中倒数第K个节点的方法

    处理链表时,有时我们需要查找特定位置的节点,例如找到链表中倒数第K个节点。这个问题通常出现在链表相关的算法和数据结构操作中。下面将详细讨论如何在PHP中实现这个功能。 首先,我们要明确链表节点的定义。在...

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

    在这个问题中,我们需要设计一个算法,输入一个链表的头节点和一个整数k,然后返回链表中倒数第k个节点。 首先,我们需要定义链表节点的结构体。通常,这会包含一个数据字段和一个指向下一个节点的指针: ```cpp ...

    链表的19种算法(C语言)

    17. **删除倒数第k个节点**:给定一个整数k,删除链表的倒数第k个节点。 18. **链表的环的起始节点**:如果链表有环,找到环的起始节点。 19. **单链表的反转K个节点**:每次反转链表中的连续K个节点,保持其他...

    c++基础练习之链表数据结构.zip

    6. **查找链表中倒数第k个位置上的结点.cpp**:找出链表中倒数第k个节点需要计算链表长度,然后返回长度减去k的索引对应的节点。可以使用快慢指针(“龟兔赛跑”策略)来优化这一过程。 7. **判断是否是回文.cpp**...

    算法大全-面试题-链表-栈-二叉树-数据结构.docx

    2. **查找倒数第k个元素**:可以使用快慢指针,快指针移动k步,然后两个指针同时移动,直到快指针到达末尾,此时慢指针所在位置即为倒数第k个元素。 3. **找到中间元素**:同样可以使用快慢指针,快指针每次移动两...

    RE_链表1

    首先,【Q19 删除链表的倒数第N个结点】的问题可以通过两种方法解决。一种是使用后序递归,跟踪一个节点后面有多少个节点,当节点后面有N个节点时,其下一个节点就是待删除的节点。另一种是快慢指针法,让快指针先行...

    有关链表的面试题

    7. **删除倒数第k个节点** 这个问题需要从头节点开始遍历链表,同时维护一个长度为k的队列,当队列满时,每次新节点入队,队列头部的节点出队,最后队列头部的节点就是目标节点。 8. **两个链表的交点** 寻找两个...

    C++链表操作6题,源码

    6. 删除链表的倒数第k个节点。 这些题目旨在考察对链表基本操作的理解以及在实际问题中的应用。通过解决这些问题,你可以加深对链表特性和C++语法的掌握,从而在面试或工作中表现出色。 总之,链表是计算机科学中...

    合工大宣城校区数据结构实验报告_单链表.doc

    "数据结构实验报告_单链表" 本实验报告的目的是熟练掌握线性表的链式存储...(3)设计一个算法来查找链表中倒数第 k 个位置上的结点。 在实验报告的结尾,我们需要总结实验的结果,并对实验的结果进行分析和讨论。

    算法大全面试题数据结构单链表的13道面试题含代码

    2. **找出单链表的倒数第四个元素**:这道题目要求找到链表中倒数第k个元素,可以利用双指针技巧,让一个指针先向前移动k-1步,然后两个指针同步移动,当先移动的指针到达链表尾部时,另一个指针所指向的就是倒数第k...

    算法大全-面试题-链表-栈-二叉树-数据结构

    - **找倒数第k个元素**:可以使用快慢指针,快指针移动k步,然后两个指针同时移动,当快指针到达末尾时,慢指针就是倒数第k个元素。 - **找中间元素**:同样使用快慢指针,快指针每次移动两步,慢指针每次移动一步...

    算法大全-数据结构

    2. **查找单链表的倒数第k个元素**:可以使用快慢指针(又称龟兔赛跑法)来解决,快指针先移动k-1步,然后两个指针同时移动,当快指针到达末尾时,慢指针所指向的就是倒数第k个元素。 3. **寻找链表的中间元素**:...

Global site tag (gtag.js) - Google Analytics