2 xxtk3333 xxtk3333 于 2016.01.21 20:01 提问

C语言双向链表求中点

在双向链表中查找链表的中间节点,如果链表的长度为偶数,取左边的节点,如果链表长度为0,返回null,用函数实现

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.21 20:10

伪代码
Node *m, *h;
int m;
while (h->next == null)
{
h = h->next;
if (i++ % 2 == 0) m = m -> next;
}
return m;

u014167893
u014167893   2016.01.21 20:23

先遍历求长度 之后在求中间的结点 就行了 啊 时间复杂度o(n)

John_ToStr
John_ToStr   Rxr 2016.01.23 16:39

定义两个指针,分别从两个端点向中间运动,若头端的指针的next就是后端的指针则取任意一个, 否则若两个指针指向同一个节点则就是他了,但是前提得
遍历链表

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!