RBTree 만들고 있었는데 트리안에 특정 노드와 그 자식까지 다 지우는 function만들고있는데 이상한 에러가 나네요.


// recursive helper function for tree deletion

// deallocates nodes in post-order

template <typename T>

void RBTree<T>::RemoveAll(Node<T>* node){

    if (node == NULL){

        return;

    }

    RemoveAll(node->left);

    RemoveAll(node->right);

    delete node;

    return;

};


보면 엄청 간단한 코드인데 RemoveAll(node->left)에서 node->left가 EXC_BAD_ACCESS 에러가 나오게 하네요.

첫 두줄에서 노드가 null인 베이스케이스도 관리하고 있는데 왜 에러가 나오는건가요???


미리 감사드립니다.