老青菜

剑指offer-二叉树的镜像

2017-01-27

题目

请完成一个函数,输入一个二叉树,该函数输出它的镜像。

分析

二叉树的镜像即镜子中二叉树,左右子节点都是反着的。总结一下,求镜像的步骤如下:

  1. 遍历这棵树的每个结点,如果有子结点,就交换它的两个子结点。
  2. 重复步骤1,直到没有子节点为止。

实现

ZHTree *treeMirror(ZHTree *tree) {
    if (tree == NULL) {
        return NULL;
    }
    //交换左右子节点
    ZHTree *leftTree = tree->left;
    tree->left = tree->right;
    tree->right = leftTree;
    //继续遍历子节点
    if (tree->left) {
        treeMirror(tree->left);
    }
    if (tree->right) {
        treeMirror(tree->right);
    }
    return tree;
}
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章