将一个单向链表分成两部分,如果节点总数为奇数,则第一部分比第二部分的节点数多一。如1,2,3,4,5分割为1,2,3 和4,5。
void FrontBackSplit(Node *head, Node **front, Node **back)
{
if (NULL == head)
{
return;
}
Node *p = head;
Node *q = head;
Node *lastOfFront = NULL;
while (p != NULL)
{
lastOfFront = q;
q = q->next;
p = p->next != NULL? p->next->next : NULL;
}
lastOfFront->next = NULL;
*front = head;
*back = q;
}