链表操作(链表逆序)

Node *ReverseList(Node *head)
{
	if (head == NULL || head->next == NULL)
	{
		return NULL;
	}
	Node *p1 = head;
	Node *p2 = p1->next;
	Node *p3 = p2->next;
	p1->next = NULL;
	while (p3 != NULL)
	{
		p2->next = p1;
		p1 = p2;
		p2 = p3;
		p3 = p3->next;
	}
	p2->next = p1;
	head = p2;
	return head;
}

你可能感兴趣的:(链表操作(链表逆序))