单链表中求中间节点
来源:互联网 发布:程序员 工资 编辑:程序博客网 时间:2024/05/01 08:57
问题描述
求单链表中间节点的值,如果中间有2个,只要第一个,就是偶数情况下,只要中间的第一个。速度要快!
解决方法
可以参照这篇博文:http://blog.csdn.net/dawn_after_dark/article/details/73611115
这篇博文所说的第一种方法这里就不阐述了。着重说一下第二种。
这里还是用小明和小王跑步的例子,小明与小王一起跑步,小王的速度是小明的2倍,当小王跑到终点的时候,小明正好处于正中间。所以我们这里还是用2个指针,一个指向第一个节点以1步向前走,另一个指向第二个节点以2步向前走。
Linklist完整定义参考博文:http://blog.csdn.net/dawn_after_dark/article/details/73610674
类中添加函数声明:
Node* findHalfNode();
函数实现:
Node* LinkList::findHalfNode() { if (head->next == NULL) { cout << "该链表没有节点,无法找到中间节点!" << endl; return NULL; } Node* first = head->next->next; Node* second = head->next; while (first&&first->next) { first = first->next->next; second = second->next; } return second;}
如果采用两个指针刚开始是同时指向第一个节点的话,代码简单修改为如下:
Node* LinkList::findHalfNode() { if (head->next == NULL) { cout << "该链表没有节点,无法找到中间节点!" << endl; return NULL; } Node* first = head->next; Node* second = head->next; while (first&&first->next&&first->next->next) { first = first->next->next; second = second->next; } return second;}
阅读全文
1 0
- 单链表中求中间节点
- 查找单链表中间节点
- 求单链表的中间节点
- 找链表的中间节点
- 求链表的中间节点
- 查找单链表中间节点
- 链表--中间节点
- 查找中间节点
- 中间节点确定方法
- 单链表的中间节点
- 求单链表的中间节点
- 求链表的中间节点
- 单链表 算法(删除中间节点)
- 一次遍历单链表中间节点
- 输出单链表的中间节点
- 查找单链表的中间节点
- 寻找单链表的中间节点
- 遍历一次求单链表中间节点
- map集合总结
- [NLP论文阅读]Siamese CBOW: OptimizingWord Embeddings for Sentence Representations
- Django项目中model的数据处理以及页面交互
- linux下分析Java程序内存汇总
- C#预处理命令
- 单链表中求中间节点
- Codeforces Word
- Scala的隐式参数、隐式值、隐式对象
- 为什么ConstraintLayout代替其他布局?
- 剑指offer面试题[9]-裴波那契数列
- Postman用法简介-Http请求模拟工具
- 谁说 JavaScript 简单的
- 1009. Product of Polynomials (25)
- 【NOI2017模拟6.22】排列问题