二叉树的节点类,析构函数中这能删除所有节点吗?//不是while(1),该如何解决

二叉树的节点类,析构函数中这能删除所有节点吗?//不是while(1)
C/C++ code

        ~Node (void) {
            if (m_pParent) {
                if (m_pParent -> m_pLeft == this)
                    m_pParent -> m_pLeft = NULL;
                else
                if (m_pParent -> m_pRight == this)
                    m_pParent -> m_pRight = NULL;
            }
            if (m_pLeft) {
                delete m_pLeft;
                m_pLeft = NULL;
            }
            if (m_pRight) {
                delete m_pRight;
                m_pRight = NULL;
            }
        }
        void* m_pData; // 数据指针
        Node* m_pParent; // 父节点指针
        Node* m_pLeft; // 左节点指针
        Node* m_pRight; // 右节点指针



------解决方案--------------------
lz 咋写的啊,你写一个节点类,然后在写一个二叉树类,二叉树类维护根节点即可