题目:
请完成一个函数,输入一颗二叉树,该函数输出他的镜像。
思路:
镜像的规律就是树的根节点相同,但他们的两个子节点左右交换了位置。我们求一颗树的镜像过程,先前序遍历这颗树的每个节点,如果遍历到的节点有子节点,就交换。交换完后就得到了镜像。
代码实现:
struct TreeNode* mirrorTree(struct TreeNode* root) {
if (root == NULL) {
return NULL;
}
struct TreeNode* left = mirrorTree(root->left);
struct TreeNode* right = mirrorTree(root->right);
root->left = right;
root->right = left;
return root;
}