剑指offer:二叉树的镜像

来源:互联网 发布:复制淘宝店铺违规吗 编辑:程序博客网 时间:2024/05/18 14:25
  • 问题描述
操作给定的二叉树,将其变换为源二叉树的镜像。
  • 例子
二叉树的镜像定义:源二叉树             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) {        TreeNode *temp=NULL;        if(pRoot){            temp=pRoot->left;            pRoot->left=pRoot->right;            pRoot->right=temp;            Mirror(pRoot->left);            Mirror(pRoot->right);        }    }};
  • 分析
    误打误撞对的,之前没细看,以为只要把二叉树的子树的值交换就可以了,就像这样
            8           /  \          10   6         / \  / \        7  5 11  9

结果提交完了之后才发现不是,不过已经通过了,所以因为temp的类型是TreeNode,交换的应该就是子树了。另外,我声明temp的时候必须用NULL才能调试成功,不过去搜NULL和null的区别的时候众说纷纭,看起来很厉害的样子,但是都看不懂,所以以后还是试试看吧。

原创粉丝点击