您的位置:首页 > Web前端

剑指offer——二叉树的镜像

2016-06-18 09:28 295 查看
题目:操作给定的二叉树,将其变换为源二叉树的镜像。 


输入描述:

二叉树的镜像定义:源二叉树
8
/  \
6   10
/ \  / \
5  7 9 11
镜像二叉树
8
/  \
10   6
/ \  / \
11 9 7  5

思路:这道题目的实质就是考察递归实现以及对二叉树镜像的理解。我们可以按照一下步骤求解:

1、先判断根是否为空,为空则直接返回,不为空进行下一步

2、交换该根节点的左右子树节点

3、递归调用该根节点的左右孩子。

具体代码如下:欢迎大家批评指正。

/*

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;

        TreeNode* temp=pRoot->left;

        pRoot->left=pRoot->right;

        pRoot->right=temp;

        Mirror(pRoot->left);

        Mirror(pRoot->right);

    }

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息