剑指offer - 二叉树的镜像 - JavaScript

剑指offer - 二叉树的镜像 - JavaScript

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

二叉树的镜像定义:

源二叉树
   8
  /  \
 6   10
/ \  / \
5  7 9  11
镜像二叉树
    8
  /  \
 10   6
/ \  / \
11 9 7  5

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。

二叉树的镜像定义:

源二叉树
   8
  /  \
 6   10
/ \  / \
5  7 9  11
镜像二叉树
    8
  /  \
 10   6
/ \  / \
11 9 7  5

解法 1: 递归

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

来自《剑指 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

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

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×