3、找出单链表的中间元素
来源:互联网 发布:里杰卡尔德知乎 编辑:程序博客网 时间:2024/05/21 17:50
分析: 两个人赛跑,如果A速度是B的2倍,那么,当A到达终点的时候,B刚好到中间位置(这种思想很重要)
注:延伸:“删除单链表的中间元素”,道理相同,只要找出,删除该结点即可。
#include<cstdlib>
const int MaxSize = 101;
using namespace std;
typedef struct ListNode{
int data;
struct ListNode *next;
}ListNode;
void FindMidList(ListNode *L)
{
ListNode *p1;
ListNode *p2;
p1 = L;
p2 = L;
while(1)
{
if(p2->next != NULL&&p2->next->next != NULL)
{
p1 = p1->next;
p2 = p2->next;
}
else
{
break;
}
}
cout<<p1->data<<endl;
}
void Print(ListNode *L)
{
ListNode *p;
p = L->next;
while(p != NULL)
{
cout<<p->data<<endl;
p = p->next;
}
}
int main()
{
int num;
ListNode *A;
ListNode *r;
ListNode *s;
A = (ListNode*)malloc(sizeof(ListNode));
r = A;
while(cin>>num)
{
s = (ListNode*)malloc(sizeof(ListNode));
s->data = num;
r->next= s;
r = r->next;
}
r->next = NULL;
FindMidList(A);
//Print(A);
return 0;
}
0 0
- 3,找出单链表的中间元素
- 3、找出单链表的中间元素
- 找出单链表的中间元素
- 找出链表的中间元素
- 单链表的中间元素
- 一个有头尾的单链表,长度未知,如何快速的找出位于中间的那个元素?
- 百度面试题:一个单链表,长度未知,如何快速的找出位于中间的那个元素
- 百度面试题:一个单链表,长度未知,如何快速的找出位于中间的那个元素
- 百度面试题:一个单链表,长度未知,如何快速的找出位于中间的那个元素
- 找出链表的中间元素 与 链表排序
- 查找单链表的中间元素
- 单链表反序、找出链表的中间元素、链表排序、判断一个单链表是否有环
- 如何找出链表中间元素
- 软件开发者面试百问-----怎样找出链表中间的元素?
- 有一个排序二叉树,数据类型是int型,如何找出中间大的元素。
- 第十三节 机试题之 遍历单链表一次,找出链表中间元素
- 遍历一次单链表,找出单链表中间的值
- 只遍历一次单链表找出中间节点的算法
- 删除最后一次的备份文件vbs
- oracle 创建临时表空间、用户表空间、创建用户关联表空间、授权等总结
- SpringMVC接受返回JSON数组
- ubuntu 12.04下LAMP安装配置
- nodejs快捷升级方式
- 3、找出单链表的中间元素
- tapestry注释介绍Annotations
- PHP面向对象开发的学习(一)
- Z-Stack删除AssociatedDevList中的无效节点
- error : comparison of distinct pointer types lacks a cast
- 今天遇到“未能加载文件或程序集"xxx”或它的某一个依赖项。试图加载格式不正确的程序。”
- 构建Android 开发环境
- jprofile8意外关闭
- ARM CPU 简单分类