本文最后更新于:2020年6月28日 下午
题目描述:
操作给定的二叉树,将其变换为源二叉树的镜像。
实现如下:
//每一个节点都是每一棵子树的根节点,只须交换左右孩子节点即可
//注意输入空指针防御
/*输入样例
二叉树的镜像定义:源二叉树
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;//判断是否为空指针
TreeNode *tmp = pRoot->left;//否则交换左右孩子的指向
pRoot->left = pRoot->right;
pRoot->right = tmp;
Mirror(pRoot->left);//递归调用对左孩子镜像处理
Mirror(pRoot->right);//递归调用对右孩子镜像处理
}
};
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!