面试中常见有关问题之单链表逆置

面试中常见问题之单链表逆置

很多大公司在面试时,喜欢让面试者在纸上写出代码,比较常见的一个问题就是链表逆置

先将代码写在下面拱参考:

void Reverse(node *head)
{

	node *p,*q,*r;
	p=head->next;
	if(p==NULL||p->next==NULL)
	{
		//说明没有元素或者仅有一个元素,不用逆置
		return;
	}

		q=p->next;

	while(q)
	{

		r=q->next;
		p->next=r;//将q删除

		//然后将q插入到第一个节点
		q->next=head->next;
		head->next=q;
		
		q=r;
	}
}