关闭

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

标签: recursionnull
1823人阅读 评论(0) 收藏 举报

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

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

 

/*

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

*/

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;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:75812次
    • 积分:889
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:2篇
    • 译文:0篇
    • 评论:2条
    友情链接