Node * BinaryTree::removeAll(Node *r) { //定義が不明.... Node *removed; if (root == NULL) return NULL; if (r->left) { if (r->left->left) return removeAll(r->left->left); else if (r->left->right) return removeAll(r->left->right); else { removed = r->left; cout << "deleted : " << r->left->data << endl; delete removed; r->left = NULL; return removeAll(root); } } else if (r->right) { if (r->right->left) return removeAll(r->right->left); else if (r->right->right) return removeAll(r->right->right); else { removed = r->right; r->right = NULL; cout << "deleted : " << r->right->data << endl; delete removed; return removeAll(root); } } else { removed = r; cout << "deleted : " << r->data << endl; r = NULL; delete r; } return removeAll(root); }
2分探索木のノードを全て削除する関数を定義したいのですが、どうしてもエラーが出てしまいます。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/10 09:32