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

Posted on 2022-02-24 00:01  AcTourist  阅读(21)  评论(0)    收藏  举报

一、题目

二、题目理解

  1、这两棵树的根节点,但它们的左右两个子节点交换了位置

  2、先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点,当交换完所有非叶节点的左右节点之后,就得到了树的镜像

  3、其实就可以考虑为:每一层的左右节点进行调换,然后传给ROOT里面,在进行下一层的左右节点调换

三、代码展示

/**
 * 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) {
    function dfs(node){
        if(node){
            [node.left,node.right] = [node.right,node.left];
            dfs(node.left);
            dfs(node.right);
        }
    }
    dfs(root);
    return root;
};

四、思考