一般方法:把单链表遍历一遍,确定长度L,再次从头结点到L / 2,即可
高效方法:利用快慢指针
*tail *mid
其中指针tail是mid的两倍,也就是说当tail指向末尾节点时,mid正好指向中间节点
if(tail -> next -> next != NULL)
{
tail = tail -> next -> next;
mid =mid -> next;
}
本文介绍两种找到单链表中间节点的方法:一种是一般方法,通过两次遍历来确定中间节点;另一种是高效的快慢指针法,仅需一次遍历即可实现。
一般方法:把单链表遍历一遍,确定长度L,再次从头结点到L / 2,即可
高效方法:利用快慢指针
*tail *mid
其中指针tail是mid的两倍,也就是说当tail指向末尾节点时,mid正好指向中间节点
if(tail -> next -> next != NULL)
{
tail = tail -> next -> next;
mid =mid -> next;
}
763

被折叠的 条评论
为什么被折叠?
