vortesnail
2016-09-29 21:38
1.m_pList是一个Node*对象,next也是一个Node*对象,为什么考研m_pList->next?
2.在构造函数里面已经m_pList->next = NULL;那么在ClearList里面Node *currentNode = m_pList->next;之后,currentNode不是就永远都是NULL了吗,又怎么进入while循环额?
m_pList是一个Node*对象,这是对的。next只是一个数据成员,next只是一个指向Node类型的指针,指向下一个结点
“在构造函数里面已经m_pList->next = NULL”这是初始化的时候,并没有插入任何元素,当然应该置为空。插入元素之后,就不会再为空了。
构造函数设置的就是一个空链表,链表中没有任何结点。所以此时执行完构造函数立马执行ClearList()语法上没有错误,但是没有任何意义,属于多此一举。一般情况下,实例化对象后,应该会执行插入和删除的操作,此时链表若:(1)不为空,则m_pList->next!=NULL,就可以顺藤摸瓜依次删除掉链表中每一个结点,(2)为空,此时也没必要进入到while循环了。
初始化时候链表中只有一个节点,即是头结点也是尾节点,所以next=NULL;当有多个节点时头结点的指针域指向下一个节点的数据域,不在是NULL啦!只有头节点时候ClearList()函数不起作用!
所以同意二楼观点!
描述问题要清楚。。。
不知从何答起。。。o(╯□╰)o
数据结构探险之线性表篇
57563 学习 · 257 问题
相似问题