`
yangyou230
  • 浏览: 1639776 次
文章分类
社区版块
存档分类

给出一个单链表,不知道节点N的值,怎样只遍历一次就可以求出中间节点。

 
阅读更多

设立两个指针,比如*p和*q,p每次移动两个位置,p=p->next->next,q每次移动一个位置,q=q->next。


分享到:
评论

相关推荐

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

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

    一次遍历删除倒数第n个节点

    一次遍历单链表删除倒数第n个节点的问题,跟删除某个节点的前一个节点是一个思路

    初始化链表,插入删除节点,遍历链表,链表长度,找出中间节点

    数据结构 初始化链表,插入删除节点,遍历链表,链表长度,找出中间节点

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

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

    查找倒数第N个结点(单链表)

    通过一次遍历找到单链表中倒数第 n 个节点。

    数据结构 链表 查找倒数第N个节点的值 查找中间节点的值

    初始化并建立单链表 遍历链表数据 查找倒数第N个数据 查找中间数据

    C语言 数据结构之单链表基本操作

    单链表的各种操作,适合于初学,也适合于复习 单链表操作介绍 1. 创建头节点 2. 创建有数据节点 3. 判断链表是否为空 ...13. 已知两个链表head1和head2各自有序,请把它们合并成一个链表依然有序,要求用递归方法

    C语言实现单链表(常规操作)

    C语言实现单链表(常规操作) LinkList CreateHeadListH(); // 头插法创建单链表 LinkList CreateHeadListT(); // 尾插法创建单链表 int ListEmpty(); // 单链表判空 int ListLength(); // 求单链表长度...

    链表的19个基本操作

    整合了这篇文章,补全了所有的基本操作(该文中只给出了其中12种,这里提供完整的19种功能)http://www.cnblogs.com/lifuqing/archive/2011/08/20/List.html 快速排序部分参考了 ... 1.初始化线性表,即置单链表的表头...

    用C语言创建一个单链表的方法

    创建一个C语言单链表的方法如下: 定义链表节点结构体: typedef struct Node { int data; // 数据域 struct Node* next; // 指针域,指向下一个节点 } Node; 定义链表的插入函数,用于在链表末尾插入节点: ...

    单向链表结点的逐个删除-C语言教程

    每敲一次代码都会有新的收获,基本功不扎实啥也干不了。单向链表的插入,删除,创建,遍历是数据结构的基本操作。里边的算法值得学习。下面我们就来学习一下单向链表结点的逐个删除的方法。

    单链表中查找倒数第n个元素2

    单链表中查找倒数第n个元素2010-07-30通过一次遍历找到单链表中倒数第n个节点,链表可能相当大,可使用辅助空间,但是辅助空间的数目必须固定,不能和n有关。

    《数据结构(c语言版)习题集》算法设计题答案

    本解答原则上只给出源代码以及必要的注释,对于一些难度较高或思路特殊的题目将给出简要的分析说明,对于作者无法解决的题目将给出必要的讨论.目前尚未解决的题目有: 5.20, 10.40; 4. 请读者在自己已经解决了某个...

    数据结构作业,C语言实现

    二叉树的层次遍历及宽度,哈夫曼树,将L中的整数序列循环左移p个位置,将表L中所有值为x 的元素删除,判断链表中是否存在环,删除单链表L(L中元素值各不相同)的最大值所对应的结点,并返回该值,树的孩子兄弟表示...

    非循环单链表的C++实现

    非循环单链表的C++源码,创建LinkList类,实现单链表的各项功能:遍历,求链表长度,插入,删除,排序等。

    Leetcode 反转链表.js

    LeetCode 206的题目是“反转链表”(Reverse Linked List),它要求将一个单链表的所有节点反转,并返回反转后链表的头节点。这是一个基础但非常重要的链表操作问题,它不仅考察了对链表数据结构的理解,还涉及到了...

    数据结构与算法.xmind

    一个每次走1步,一个每次走两步,走两步的遍历完,然后走一步的指针,那就是中间节点 递归从尾到头输出单链表 只要下面还有数据,那就往下找,递归是从最后往前翻。 反转链表 有递归和非递归...

    基于C语言实现单链表的插入和删除(源码)

    实现了删除指定值的节点的函数 deleteNode,首先处理链表为空和头节点的情况,然后遍历链表找到要删除节点的前一个节点,并进行删除操作。 实现了打印链表内容的函数 printList,用于验证链表操作的结果。 在 main ...

    【经典面试题】单链表的常见面试题

    文章目录求单链表中有效节点的个数查找单链表中倒数第k个节点【新浪面试题】单链表的反转【腾讯面试题】从尾到头打印单链表【百度面试题,要求方式1:反向遍历。方式2:Stack栈】 单链表的常见面试题有如下: 1.求...

    全网最详细的-线性表的链式存储

    链表是一种非连续的存储结构,由一系列节点组成,每个节点包含数据域和指针域,数据域用于存储元素的值,指针域用于指向下一个节点的位置。 在链式存储中,线性表的每个元素都被封装在一个节点中,并且每个节点通过...

Global site tag (gtag.js) - Google Analytics