为了账号安全,请及时绑定邮箱和手机立即绑定

求大神, c++的问题

void List::ClearList()

{


Node *currentNode = m_pList;

while (currentNode->next != NULL) // 未释放的指针是危险的

{

Node *temp = currentNode->next;

delete currentNode;

currentNode = temp;

}

m_pList->next = NULL;

}

感觉 p_list->data的数据没有被清除啊, 这样没影响吗

正在回答

1 回答

current->next就是一个Node节点,里面存放在data和一个指向下一个node的指针。delete currentNode就是把这个节点所有数据删除, 包括data和指针

0 回复 有任何疑惑可以回复我~
#1

qq_愿时光安好_04050009 提问者

不是啊 头结点没被清除,对整个链表没影响吗
2017-04-06 回复 有任何疑惑可以回复我~
#2

唱跳rap篮球_ 回复 qq_愿时光安好_04050009 提问者

第一个节点时没有实质数据的,就像火车头一样。所以你存储的数据是从第二个节点开始存储,clear函数是清空存储有数据的节点。留下头结点来让你可以再次在这个链表里面挂载新的节点。如果删除了头结点就是把整个链表销毁,如果你想在使用就必须new一个新链表
2017-04-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
数据结构探险之线性表篇
  • 参与学习       57540    人
  • 解答问题       257    个

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

进入课程

求大神, c++的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信