剑指offer题解C++【18】二叉树的镜像

来源:互联网 发布:匿名四轴源码 编辑:程序博客网 时间:2024/06/16 16:49

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:

二叉树的镜像定义:源二叉树
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){            TreeNode *ptmp=pRoot->left;            pRoot->left=pRoot->right;            pRoot->right=ptmp;            Mirror(pRoot->left);            Mirror(pRoot->right);        }    }};
原创粉丝点击