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; 展开
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; 展开
2个回答
展开全部
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->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;这样写不是更好看懂一些么~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询