剑指offer:二叉树的镜像 代码实现



题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。 
输入描述:
二叉树的镜像定义:源二叉树 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	镜像二叉树
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5


class Solution {
public:
    void Mirror(TreeNode *pRoot) {
		
		if(pRoot == NULL || (pRoot->left == NULL && pRoot->right != NULL))
		{
			return;
		}

		/* 交换左右子树 */
		TreeNode* temp = pRoot->left;
		pRoot->left = pRoot->right;
		pRoot->right = temp;

		/* 递归交换 */
		if(pRoot->left != NULL)
		{
			Mirror(pRoot->left);
		}
		
		if(pRoot->right != NULL)
		{
			Mirror(pRoot->right);
		}
		

    }
};


你可能感兴趣的:(经典编程题)