实现思路:
其实就是先序遍历,依次交换节点的左子树与右子树。使用递归就可以解决,但要注意书写递归的终止条件。
JavaScript代码实现如下:

function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} 
function Mirror(root)
{
    return recursion(root)
}
function recursion(node) {
    if(!node || (!node.left && !node.right)) {
        return node;
    }

    var temp = node.left;
    node.left = recursion(node.right);
    node.right = recursion(temp);

    return node;
}
module.exports = {
    Mirror : Mirror
};