剑指Offer(牛客版)--面试题27:二叉树的镜像

剑指Offer(牛客版)--面试题27:二叉树的镜像

 

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

 

分析:

剑指Offer(牛客版)--面试题27:二叉树的镜像

 

完整代码:

 

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
class Solution {
public:
    void Mirror(TreeNode *pRoot) {
        //检查根节点以及根节点的左右节点是否存在
        if((pRoot == nullptr) || (pRoot->left == nullptr && pRoot->right == nullptr))
            return;
        /*******交换当前根节点的左右节点*******/
        TreeNode* pTemp = pRoot->left;
        pRoot->left = pRoot->right;
        pRoot->right = pTemp;
        //判断是否存在左子树
        if(pRoot->left)
            //递归调用镜像函数交换左右节点
            Mirror(pRoot->left);
        //判断是否存在右子树
        if(pRoot->right)
            //递归调用镜像函数交换左右节点
            Mirror(pRoot->right);
    }
};