55-將單連結串列原地逆置(有頭結點的單連結串列)

-林澤宇發表於2020-11-28

在這裡插入圖片描述

void Reverse(HeadList *head)
{
	if(head==NULL||head->next==NULL||head->next->next==NULL)
	return ;
	HeadList *s=NULL;
	HeadList *p=head->next;
	HeadList *q=p->next;
	while(p!=NULL)
	{
		p->next=s;
		s=p;
		p=q;
		if(q!=NULL)
		{
			q=q->next;
		}
	}
	head->next=s;
}

方法2:兩個指標實現 利用head->next代替上面程式碼的s指標

void Reverse(HeadList *head)
{
	
	if(head==NULL||head->next==NULL||head->next->next==NULL)
	return ;
	HeadList *p=head->next;
	HeadList *q=p->next;
	head->next=NULL;
	while(p!=NULL)
	{
		p->next=head->next;
		head->next=p;
		p=q;
		if(q!=NULL)
		{
			q=q->next;
		}
	}
}

相關文章