平衡二叉树的程序//析构函数上是从最低层的叶子节点开始析构的吗?解决思路

平衡二叉树的程序//析构函数上是从最低层的叶子节点开始析构的吗?
C/C++ code

    ~Node (void) {
            if (m_pParent) {//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;
            }
        }



------解决方案--------------------
如果直接删除父节点,那子节点和父节点的联系就断了,那怎么删除子节点
我是这么想的