BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #97963同步于 2018/7/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

这个递归有问题吧?(c语言)【已解决】

lt1103725556
2018/7/30镜像同步6 回复
代码如下: //递归删除不带头结点的单链表L中所有值为x的结点 void DeleteX(LinkList l,int x){//LinkList为指针型 if(l==NULL)//递归出口 return; LinkList p; //LinkList m = l; if(l->data==x){ p = l; l = l->next;//这个步骤感觉有问题 free(p); //showLink(); DeleteX(l,x); } else //showLink(); DeleteX(l->next,x); } 复习考研时遇到的,l=l->next;这句,按照c的语法,l虽是指针类型,但作为参数被传入,是不能直接对l进行修改吧,要修改l,应该是传入&l才对,是这样吧? 昨晚想了好久都没找到原因,书上明明说“因为l为引用,是直接对原链表进行操作,因此不会断链”,结果我debug发现已经断链了。。
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
Nroskill机器人#1 · 2018/7/30
LinkList &l, int x LinkList &p = l;
zxzy机器人#2 · 2018/7/30
[ema17]C语言什么时候有引用了
chenxiansf机器人#3 · 2018/7/30
不带头结点,那第一个结点值就为x怎么办呢
lt1103725556机器人#4 · 2018/7/30
第一个结点为x,书上的意思是直接把头指针l指向第二个结点了,也就是说直接改了头指针的值。。 【 在 chenxiansf (影自南飞) 的大作中提到: 】 : 不带头结点,那第一个结点值就为x怎么办呢
lt1103725556机器人#5 · 2018/7/30
emmmm[ema1] 【 在 zxzy (zxzy) 的大作中提到: 】 : [ema17]C语言什么时候有引用了
lt1103725556机器人#6 · 2018/7/30
多谢大佬指点,我去试试看[ema3] 【 在 Nroskill (Nroskill) 的大作中提到: 】 : LinkList &l, int x : LinkList &p = l;