社区
数据结构与算法
帖子详情
找出单向链表的中项,如果有2个,输出前面一个
superspring
2009-12-03 02:15:33
比如
a->b->c->d->e 返回 c
a->b->c->d 返回 b
很显而意见的办法是遍历链表,先求出链表长度,然后再找出根据中间项的位置
这样做的复杂度 是 链表长度的1.5倍
有没有更好的办法
...全文
236
9
打赏
收藏
找出单向链表的中项,如果有2个,输出前面一个
比如 a->b->c->d->e 返回 c a->b->c->d 返回 b 很显而意见的办法是遍历链表,先求出链表长度,然后再找出根据中间项的位置 这样做的复杂度 是 链表长度的1.5倍 有没有更好的办法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bigc2000
2009-12-06
打赏
举报
回复
复杂度都是O(n),至于比较次数倒是采用一个走2步,1个走1步
好于数组
lpwcstr
2009-12-05
打赏
举报
回复
typedef struct tag__LinkNode
{
int value;
struct tag__LinkNode * pNext;
}LINKNODE, * PLINKNODE;
PLINKNODE GetMid(PLINKNODE head)
{
PLINKNODE pRet = head;
int i = 0;
PLINKNODE pTmp = head;
while(pTmp)
{
if( i > 0 && !(i % 2))
pRet = pRet->pNext;
pTmp = pTmp->pNext;
i ++;
}
return pRet;
}
alexhilton
2009-12-03
打赏
举报
回复
用二个指针, 一个一次前进一个节点, 一个一次前进二个节点, 当第二个指针到达尾部时, 第一个指钱刚好达到链表中项。
LeonTown
2009-12-03
打赏
举报
回复
cool
[Quote=引用 4 楼 zhoushunda960 的回复:]
设A、B两个指针指向链表,两个指针同时遍历链表,A指针一次跳一步,B指针一次跳两步。B到尾时,A应该就是中间项吧!
[/Quote]
kolapig
2009-12-03
打赏
举报
回复
[Quote=引用 4 楼 zhoushunda960 的回复:]
设A、B两个指针指向链表,两个指针同时遍历链表,A指针一次跳一步,B指针一次跳两步。B到尾时,A应该就是中间项吧!
[/Quote]
这样做的时间复杂度跟楼组的办法是一样的吧。
zhoushunda960
2009-12-03
打赏
举报
回复
设A、B两个指针指向链表,两个指针同时遍历链表,A指针一次跳一步,B指针一次跳两步。B到尾时,A应该就是中间项吧!
superspring
2009-12-03
打赏
举报
回复
[Quote=引用 2 楼 meihuakai 的回复:]
在链表生成的时候就给它的么讴歌结点一个数据域,用来记录该结点在链表中的位置,int i=0;i++自动给该数据域赋值,链表生成好后总的结点个数就是最后一个接点的数据,这样直接找
[/Quote]
是单向链表啊,你就算给了一个数据记录节点在链表中位置,也没有一点用处
meihuakai
2009-12-03
打赏
举报
回复
在链表生成的时候就给它的么讴歌结点一个数据域,用来记录该结点在链表中的位置,int i=0;i++自动给该数据域赋值,链表生成好后总的结点个数就是最后一个接点的数据,这样直接找
donkey301
2009-12-03
打赏
举报
回复
可不可以加个记录链表长度的变量,每加一个节点就更新一次。
《数据结构 1800题》
8.
一个
算法具有 5个特性: (1)有穷性 、 (2)确定性 、 (3)可行性 ,有零个或多个输入、有
一个
或多个
输出
。 《数据结构 1800题》 9.已知如下程序段 FOR i:= n DOWNTO 1 DO {语句 1} BEGIN x:=x+1;...
输入
一个
单向链表
,
输出
该链表中倒数第 k 个结点。链表的倒数第0 个结点为链表的尾指针。
题目:输入
一个
单向链表
,
输出
该链表中倒数第 k 个结点。链表的倒数第0 个结点为链表的尾指针。 分析: 由于题目指明是
单向链表
,自然不能反向
输出
倒数第k个节点,除非你先逆置单链表。虽然也是一种做法,但...
如何判断
单向链表
是否有环?
前言:链表在开发过程中属于出现频次十分高的一种数据结构,在java中,比如我们熟知的LinkedList、HashMap底层结构、LinkedHashMap、AQS等都使用到了链表,...首先我们来画
一个
普通的
单向链表
和环状链表的结构图: ...
Python实现
单向链表
本篇文章使用 Python 来实现
一个
单向链表
。 一、定义
一个
创建节点的类 链表是由
一个
个的节点组成的,在创建链表之前,要先创建节点,然后把节点“串”到链表上。在同
一个
链表中,每个节点的结构都相同,只是节点中...
Java实现
单向链表
Java实现
单向链表
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章