C语言双向链表求中点

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

c

3个回答

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问