求一颗二叉树的镜像 【每日一题】

题目:
求一颗二叉树的镜像
解决方法:
创建一个树以后,交换每个节点的左右孩子

//递归
    void _GetBinaryMirror(Node* pRoot)
    {
        if(pRoot)
        {
            std::swap(pRoot->_pLeft ,pRoot->_pRight );
            _GetBinaryMirror(pRoot->_pLeft );
            _GetBinaryMirror(pRoot->_pRight );
        }
    }
    //非递归
    void _GetBinaryMirror_Nor(Node* pRoot)
    {
        queue<Node*> q;
        q.push(pRoot);
        while(!q.empty())
        {
            Node* pCur = q.front();
            std::swap(pCur->_pLeft ,pCur->_pRight );
            if(pCur->_pLeft )
                q.push(pCur->_pLeft );
            if(pCur->_pRight )
                q.push(pCur->_pRight );
            q.pop();
        }
    }

你可能感兴趣的:(数据结构,剑指offer)