/*查找中间节点*/
/*思想很简单,两个指针,同时开始从头走,一个一次走两步,一个一次走一步,
偶数节点时候,中间的返回前面或后面的都可,奇数个节点的时候返回中间节点*/
single_list_node* Find_middle_node(single_list_node* head)
{
single_list_node *p1 = NULL, *p2 = NULL;
if(NULL == head)
{
return NULL;
}
p1 = p2 = head;
while(p1 != NULL)
{
p1 = p1->next;
if(NULL == p1)
{
break;
}
p1 = p1->next;
p2 = p2->next;
}
return p2;
}