剑指 Offer. 二叉树的镜像

请完成一个函数,输入一个二叉树,该函数输出它的镜像。

例如输入:

镜像输出:

 

示例 1:

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

代码如下:

class Solution {
public:
    TreeNode* mirrorTree(TreeNode* root) {
        queue<TreeNode*> q;//定义队列
        q.push(root);//将根节点入队
        while(!q.empty())
        {
            TreeNode* temp=q.front();//获取队首元素,并让队首元素出队
            q.pop();
            if(temp==NULL)
            {
                continue;
            }
            swap(temp->left,temp->right);//交换左右节点的值
            q.pop();
            if(node->left!=nullptr)//此节点的左结点都不为空时,将此结点的左节点入队
            {
                 q.push(node->left);
            }
            if(node->right!=nullptr)//此节点的右结点都不为空时,将此结点的右节点入队
            {
                 q.push(node->right);
            }//入队的结点是二叉树下一行的结点
        }
        return root;

    }
};

猜你喜欢

转载自blog.csdn.net/m0_62379712/article/details/131996678