16.二叉树的镜像

二叉树的镜像
  • 参与人数:4644时间限制:1秒空间限制:32768K
  •  算法知识视频讲解

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。 
输入描述:
二叉树的镜像定义:源二叉树 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	镜像二叉树
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5
这道题难度一般,主要是尾递归的掌握以及递归退出条件的判断
/*
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 == NULL )
            return ;
        
        if ( pRoot->left == NULL && pRoot->right == NULL )
            return ;
        
        TreeNode* tmp = pRoot->left ;
        pRoot->left = pRoot->right ;
        pRoot->right = tmp ;
        
        if ( pRoot->left != NULL ) {
            Mirror( pRoot->left ) ;
        }
        if ( pRoot->right != NULL ) {
            Mirror( pRoot->right ) ;
        }
    }
};


你可能感兴趣的:(16.二叉树的镜像)