ViVi Home > 技術文書 > ポインタ入門 > 構造体演習問題 > deleteAllNodes


 

 

C/C++ ポインタ入門 > 構造体 > deleteAllNodes
Nobuhide Tsuda
Jan-2014

環状リストの全てのノードを解放

Node *deleteAllNodes(Node *root)
{
    Node *ptr = root;
    do {
        Node *np = ptr->m_next;   // ptr は delete されるので次のノードを取得しておく
        delete ptr;                           // ptr を delete
    } while ((ptr = np) != root);    // 次のノードに移動し、先頭でなければループ継続
    delete root;        // root も解放
}

解説:

 


前: | 次: