搞清楚镜像的定义,简单来说就是:从上到下,依次交换每个节点的左右节点。

来自《剑指 Offer》的示意图:

代码实现如下:

// 原文地址:https://xxoo521.com/2020-01-13-tree-jing-xiang/
// ac地址:https://www.nowcoder.com/practice/564f4c26aa584921bc75623e48ca3011

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function Mirror(root) {
    if (!root) {
        return null;
    }
    // 交换当前节点的左右节点
    const leftCopy = root.left;
    root.left = root.right;
    root.right = leftCopy;

    // 对左右子树做相同操作
    Mirror(root.left);
    Mirror(root.right);

    return root;
}

🔍 关注公众号“心谭博客” / 👉 前往 xxoo521.com

查看更多前端与算法的系列文章,获得更好阅读体验