我想通过传递headPtr来删除单链表中存在的所有节点。这是我的代码如下。
void deleteList(node *head) {
node *curPtr, *temp;
curPtr = temp = head;
while ( curPtr != NULL ) {
temp = curPtr;
curPtr = curPtr->next;
delete temp;
}
head = curPtr;
}
对于包含以下节点的列表, 1 2 3 4 五 0 我得到以下输出
0 1213232 123234 2424242 24242424 24242424
我的代码是否正确无误?有没有更好的方法呢?
此致
答案 0 :(得分:1)
除了最后一行,我看起来不错。
head = curPtr;
没有任何价值。
答案 1 :(得分:1)
可能有更好的方法。使用递归调用,
void deleteList(node *head) {
if(head!=null){
deleteList(head->next);
delete head;
}
}
希望它有所帮助......