`

一个单链表,长度未知,如何快速的找出位于中间的那个元素

阅读更多

问题:

一个单链表,长度未知,如何快速的找出位于中间的那个元素?

 

方法一:

设置两个指针,p1,p2, 开始p1,p2均位于链接的头部。
p1 每次步进两步,
p2 每次步进一步
当p1到达链表的末尾时,p2所在的位置就是链表的中间元素

18
22
分享到:
评论

相关推荐

    快速找到未知长度单链表的中间节点

    快速找到未知长度单链表的中间节点 普通的方法很简单,首先遍历一遍单链表以确定单链表的长度L。然后再次从头节点出发循环L/2次找到单链表的中间节点。算法复杂度为O(L+L/2)=O(3L/2)。

    两个单链表元素交叉合并开发教程文档.docx

    两个单链表元素交叉合并两个单链表元素交叉合并两个单链表元素交叉合并两个单链表元素交叉合并两个单链表元素交叉合并两个单链表元素交叉合并两个单链表元素交叉合并两个单链表元素交叉合并两个单链表元素交叉合并两...

    建立一个单链表

    建立一个单链表,在单链表上实现插入、删除和查找等操作,有菜单。 ⑴初始化字符型单链表H; ⑵采用尾插法建立单链表H,如(a,b,c,d,c); ⑶输出单链表H的长度; ⑷输出单链表H的第i个元素,如输出单链表H的第3...

    单链表的快速排序算法

    单链表是一种基础的数据结构,它由一系列节点构成,每个节点包含数据元素和指向下一个节点的指针。在计算机科学中,链表是数组的一种补充,尤其在动态内存分配和处理大容量数据时表现出优越性。快速排序算法,是排序...

    单链表 快速查找 VC++

    在VC++环境下,我们可以利用C++的标准模板库(STL)中的`list`容器来实现单链表,但这里我们将探讨如何从零开始手动构建一个单链表,以及如何在其中实现快速查找。 单链表由一系列节点组成,每个节点包含两个部分:...

    只遍历一遍找出单链表的倒数第K个节点

    C CODE FOR :只遍历一遍找出单链表的倒数第K个节点

    查找单链表的中间节点

    头插法建立带头结点的单链表,并找出中间节点值

    单链表中重复元素的删除

    在这个问题中,我们需要按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。 在理解这个问题之前,我们需要了解什么是单链表。单链表是一种链式...

    用C++实现一个单链表

    本项目"用C++实现一个单链表"旨在帮助开发者掌握如何在C++环境中创建、操作和管理单链表。以下是关于这个主题的详细说明。 首先,单链表是一种线性数据结构,其中每个元素称为节点,每个节点包含两部分:数据域和...

    单链表的快速

    运用递归进行一个单链表的快速排列!并且有注释!

    设head为单链表的头指针,将单链表中元素按递增顺序就地排列

    在本例中,定义了一个简单的单链表节点结构体 `struct_Node`,其中 `data` 用来存储整型数据,`next` 是一个指向下一个节点的指针。 ```c struct_Node { int data; struct_Node *next; }; ``` #### 二、单链表...

    删除单链表中的重复元素之保留最前面一个.cpp

    删除单链表中的重复元素之保留最前面一个.cpp

    将1个单链表变成3个单循环链表

    根据给定的文件信息,我们将深入探讨如何将一个单链表转换为三个单循环链表,这涉及到数据结构中的链表操作以及字符分类处理。在理解这个过程之前,我们需要先了解链表的基本概念以及C语言中如何实现链表。 ### ...

    两个单链表元素交叉合并C语言实现.docx

    两个单链表元素交叉合并

    数据结构--快慢指针法找出链表中间元素

    C语言实现:头插法创建链表,打印输出链表内容,利用快慢指针法找出链表中间元素,链表内容为奇数个时,打印中间值, 链表内容为偶数个时,打印中间两个值

    设A和B是两个单链表,其表中元素递增有序

    设A和B是两个单链表,其表中元素递增有序。试写一算法将A和B归并成一个按元素值递减有序的单链表C,并要求辅助空间为O(1),试分析算法的时间复杂度。

    单链表的各种基本运算

    建立一个单链表,实现单链表的初始化,插入、删除节点等功能,以及确定某一元素在单链表中的位置。 (1) 初始化单链表; (2) 依次采用尾插入法插入a,b,c,d,e元素; (3) 输出单链表L; (4) 输出单链表L的长度...

    单链表的创建,插入,删除,查找,求长度

    单链表由一系列节点组成,每个节点包含数据和指向下一个节点的指针。本文将深入探讨单链表的创建、插入、删除、查找以及求长度的操作。 ### 创建单链表 创建一个空的单链表首先需要定义一个节点结构体,通常包括...

    一个简单的单链表作业

    创建单链表首先需要定义一个节点类,包含数据和指向下一个节点的指针。在编程中,这可能表现为: ```python class Node: def __init__(self, data): self.data = data self.next = None ``` 接下来,我们...

Global site tag (gtag.js) - Google Analytics