剑指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》的示意图:

代码实现如下:

// ac地址:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/
// 原文地址:https://xxoo521.com/2020-01-13-tree-jing-xiang/

/**
 * @param {TreeNode} root
 * @return {TreeNode}
 */
var mirrorTree = function(root) {
    if (!root) {
        return null;
    }
    // 交换当前节点的左右节点
    const leftCopy = root.left;
    root.left = root.right;
    root.right = leftCopy;

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

    return root;
};

更多资料

评论

Your browser is out-of-date!

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

×