关于m_pList->next的两个问题

来源:3-4 链表编码实战(二)

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循环额?


写回答 关注

4回答

  • 风起了_
    2016-10-15 11:16:23
    已采纳
    1. m_pList是一个Node*对象,这是对的。next只是一个数据成员,next只是一个指向Node类型的指针,指向下一个结点

    2. “在构造函数里面已经m_pList->next = NULL”这是初始化的时候,并没有插入任何元素,当然应该置为空。插入元素之后,就不会再为空了。

    weixin... 回复慕粉2016...

    应该是这样的

    2019-07-20 09:48:42

    共 4 条回复 >

  • 慕粉20161020
    2016-11-24 10:19:32

    构造函数设置的就是一个空链表,链表中没有任何结点。所以此时执行完构造函数立马执行ClearList()语法上没有错误,但是没有任何意义,属于多此一举。一般情况下,实例化对象后,应该会执行插入和删除的操作,此时链表若:(1)不为空,则m_pList->next!=NULL,就可以顺藤摸瓜依次删除掉链表中每一个结点,(2)为空,此时也没必要进入到while循环了。

  • 慕粉3631940
    2016-10-17 21:27:29

    初始化时候链表中只有一个节点,即是头结点也是尾节点,所以next=NULL;当有多个节点时头结点的指针域指向下一个节点的数据域,不在是NULL啦!只有头节点时候ClearList()函数不起作用!

    所以同意二楼观点!

  • 慕姐3585284
    2016-09-29 22:14:04

    描述问题要清楚。。。

    不知从何答起。。。o(╯□╰)o

数据结构探险之线性表篇

线性表的主体顺序表和链表,让学员能够将知识融会贯通学以致用

57563 学习 · 257 问题

查看课程

相似问题