3.15反转链表

输入一个链表,反转链表后,输出新链表的表头。
ListNode* ReverseList(ListNode* pHead) {

	ListNode* head = NULL;

	do
	{
		if (NULL == pHead) {
			break;
		}
		if (pHead->next == NULL) {
			head = pHead;
			break;
		}

		ListNode* p = pHead->next;
		ListNode* ptail = pHead->next;

		while (p->next != NULL)
		{
			ListNode* pTemp = p->next;
			p->next = p->next->next;
			pTemp->next = pHead->next;
			pHead->next = pTemp;
		}
		head = pHead->next;
		ptail->next = pHead;
		pHead->next = NULL;

	} while (0);

	return head;
}
测试:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_37518595/article/details/84943929