您的位置:首页 > 其它

快速找到未知长度单链表的中间结点

2015-08-19 22:07 405 查看
快速找到未知长度单链表的中间结点

采取的方法为快满指针的方法,具体思想就是,定义两个指针A,B分别指向头结点,让它们从头结点开始跑,A指针依次指向下面的结点,而B指针是隔着一个结点指向下一个结点,那么当B指针指向末尾结点的时候,A指针刚好指向中间结点了。

code如下:

typedef float ElemType;
typedef struct Node
{
	ElemType data;//数据域
	struct Node *Next;//指针域
}Node;
typedef struct Node* LinkList;

int getMidNode( LinkList L,ElemType *e)
{
	LinkList search,mid;
	mid = search = L;
	while(search->Next!=NULL)
	{
		if(search->Next->Next!=NULL)
		{
			search = search->Next->Next;
			mid = mid->Next;
		}
		else search = search->Next;
	}
	*e = mid->data;

	return bingo;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: