1.带头结点

//带头结点
void Reverse(SLink *&L){
//用指针p遍历,r为p的后继
	SLink *p,*r;
	p=L->next;
	L->next=NULL;
//遍历链表
	while(p!=NULL){
	//用r暂存p的后继
	r=p->next;
	//用头插法创建新链表实现逆置
	p->next=L->next;
	L->next=p;
	//更新p
	p=r;
	}
}

2.不带头结点

//不带头结点
void Reverse(SLink *&L){
//用指针p遍历,r为p的后继
	SLink *p,*r;
	p=L;
	r=p->next;
	L->next=NULL;
//遍历链表
	while(p!=NULL){
	p=r;//向后遍历
	r=p->next;
	p->next=L;//实现逆置核心
	L=P;//移动头指针
	}
}
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐