C/C++用递归的方法求链表逆序

这种方法太费空间和时间,没有我前一篇写的那程序方便,不过这方法直接

其实我认为递归和栈都是一个道理,只不过递归是函数自己创建一个超级栈,控制的时候需要注意一点,而栈是自己创建的栈,好控制流程。

 

/*

此方法仅用来学习递归和栈,不适合实用,至少我是用它来练习学习栈了,呵呵

*/

void RevList_recursion(pNode *l)
{
 //pNode p;
 pNode q=*l;
 if((q->Next!=NULL)&&(q!=NULL))
  RevList_recursion(&(q->Next));
 if(q!=NULL)
 {
  AddList(l,q);
 }
}

void AddList(pNode *l,const pNode pE)
{
 pNode p=*l;
 if ((*l)==NULL)
 {
  (*l)=pE;
  (*l)->Next=NULL;
  return ;
 }

 if (p==pE)
  return;

 while (p->Next!=NULL)
 {
  p=p->Next;
  if (pE==p)
   return ;
 }
 pE->Next=NULL;
 p->Next=pE;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值