c语言链表里的一段代码的含义

pNew->data=val;pTail->pNext=pNew;pNew->pNext=NULL;pTail=pNew;这是创建链表最核心的一个步骤,当初讲的时候我还是... pNew->data = val;
pTail->pNext = pNew;
pNew->pNext = NULL;
pTail = pNew;
这是创建链表最核心的一个步骤,当初讲的时候我还是理解的,好久不用再看就忘了。。虽然已经背下来了不过还是希望能够深刻的理解心理比较舒服
这里
pNew->data = val;
pNew->pNext = NULL;
pTail = pNew;
我觉得和正常的意思是一样的了,不过我运行了下不能输出链表,所以pTail->pNext=pnew是必不可少的,但是我又看不出他的意义所在,归根结底还是我对指针的认识不够透彻,因为创建链表前边肯定有个pTail = pHead,不过因为是pTail在前面所以也影响不到pHead,而最下边的返回值是return pHead,这也是我不理解的一点,请大神帮忙疏通下思路
我思考了下大概理解的,不知道是不是也可以这样写
pNew->data = val;
pTail->pNext = pNew;
pTail = pTail->Next;
pTail->next = NULL;
展开
 我来答
lajibaodu
推荐于2016-02-24 · TA获得超过1067个赞
知道小有建树答主
回答量:694
采纳率:100%
帮助的人:240万
展开全部
pNew->data = val;
pNew->pNext = NULL;
pTail = pNew;
这个是新创建的节点,将val赋值给节点的data~
然后将新节点的next指向一个空~防止野指针
接下来的就是把Ptail指向新节点,代表这个是尾节点已经到了pNew的位置~
pTail->pNext=pnew这句话其实是将尾节点的next指向pNew的地址,实现链表的链接~
你修改之后
pTail = pTail->Next;这句话我表示不是很懂~是不是写错了~为什么要把尾指针的next指向尾指针?????
你是不是想写将尾指针移到新创建的指针上去,那应该是这样写pTail = pNew;
更多追问追答
追问
pNew->data = val;
pTail->pNext = pNew;
pTail = pTail->Next;
pTail->next = NULL;
是不是也可以这样写
追答
pTail = pTail->Next;这句话我表示不是很懂~是不是写乱了~为什么要把尾指针的next赋值给尾指针?????
不过这样的话,对是对的哦~建议不要这么写
pTail = pNew;这样写不是更好看懂一些么~
fucshidam
2015-04-20 · TA获得超过536个赞
知道小有建树答主
回答量:393
采纳率:40%
帮助的人:347万
展开全部
pTail->pNext = pNew这句不能省,因为pTail其实就是最后一个节点,这句话把新建节点加到了链表的最末尾。
追问
pNew->data = val;
pTail->pNext = pNew;
pTail = pTail->Next;
pTail->next = NULL;
是不是也可以这样写
追答
本身来说可行,但建议不要如此,还是规范一点好,比较安全~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式