面试题9二叉树的镜像

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。 
输入描述:
二叉树的镜像定义:源二叉树 
    	    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!=nullptr){
            swap(pRoot->left,pRoot->right);
            Mirror(pRoot->left);
            Mirror(pRoot->right);  
    /*void Mirror2(TreeNode *pRoot) {//迭代版
		if (pRoot == NULL)
			return;
		stack<TreeNode*> stackNode;
		stackNode.push(pRoot);
		while (stackNode.size()) {
			TreeNode* tree = stackNode.top();
			stackNode.pop();
			if (tree->left != NULL || tree->right != NULL) {
				TreeNode *ptemp = tree->left;
				tree->left = tree->right;
				tree->right = ptemp;
			}
			if (tree->left)
				stackNode.push(tree->left);
			if (tree->right)
				stackNode.push(tree->right);
		}


	}*/
            
        }       
	}
};

  

posted @ 2017-05-04 21:43  zqlucky  阅读(177)  评论(0编辑  收藏  举报