剑指 Offer 27. 二叉树的镜像 javascript解法

Posted Smoothzjc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer 27. 二叉树的镜像 javascript解法相关的知识,希望对你有一定的参考价值。

⚡️剑指 Offer 27. 二叉树的镜像⚡️
请完成一个函数,输入一个二叉树,该函数输出它的镜像。

例如输入:

     4
   /   \\
  2     7
 / \\   / \\
1   3 6   9

镜像输出:

     4
   /   \\
  7     2
 / \\   / \\
9   6 3   1

示例 1:

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

限制:

0 <= 节点个数 <= 1000

⚡️分析⚡️

递归,先左右交换,判断左右是否有子结点,有的话继续递归左右交换子结点即可。

代码如下:

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {TreeNode}
 */
var mirrorTree = function(root) {
    if(!root) return null;
    turn(root);
    return root;
};
function turn(node) {
    if(!node) return;
    let q = node.left;
    node.left = node.right;
    node.right = q;
    if(node.left)
        turn(node.left);
    if(node.right)
        turn(node.right);
}

算法效率如图:

以上是关于剑指 Offer 27. 二叉树的镜像 javascript解法的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 27. 二叉树的镜像 题解

剑指offer树27.二叉树的镜像

剑指 Offer 27. 二叉树的镜像

剑指offer-面试题27-二叉树的镜像-二叉树

LeetCode(剑指 Offer)- 27. 二叉树的镜像

剑指Offer打卡27.二叉树的镜像