JSMS26-反转链表-剑指offer16

题目描述,给定一个单链表的头结点,返回逆置之后的头结点。

分析:逆置单链表我已经写烂了,说句实话逆置单链表还是有点点难度的。直接上代码了

node *NIZHI(node *h)
{
	node *p,*ret,*mid,*q;
	p=h->next;
	mid=p->next;
	ret=h;
	for(;q;)
	{
		q=mid->next;
		mid->next=p;
		p=mid;
		mid=q;
	}
	ret->next->next=NULL;
	ret->next=p;
	return ret;
}

复制代码

核心代码就上面那些,传进去的是带头结点的单链表。其中p是头结点的下一个节点,mid是p->next,q记录mid->next,当q为NUULL时结束循环。ret记录的是头结点,ret->next->next是第一个带参数的节点的指向,逆置了之后指向NULL,头结点指向p也就是逆置之后的第一个带参数的节点。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享