删除单链表的所有节点

时间:2014-03-30 06:22:55

标签: c++ linked-list

我想通过传递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

我的代码是否正确无误?有没有更好的方法呢?

此致

2 个答案:

答案 0 :(得分:1)

除了最后一行,我看起来不错。

head = curPtr;

没有任何价值。

答案 1 :(得分:1)

可能有更好的方法。使用递归调用,

void deleteList(node *head) {
    if(head!=null){
        deleteList(head->next);
        delete head;
    }
}

希望它有所帮助......