226. Invert Binary Tree

by samur3

JavaScript

/*let node3 = new TreeNode(4);
let node4 = new TreeNode(5);
let node1 = new TreeNode(2,node3,node4);
let node2 = new TreeNode(3);
let root = new TreeNode(1,node1,node2);*/

/*let node3 = new TreeNode(2);
let node1 = new TreeNode(1,undefined,node3);
let node2 = new TreeNode(3);
let root = new TreeNode(3,node1);*/

let node6 = new TreeNode(7);
let node5 = new TreeNode(6);
let node4 = new TreeNode(5);
let node3 = new TreeNode(4);
let node2 = new TreeNode(3,node5,node6);
let node1 = new TreeNode(2,node3,node4);
let root = new TreeNode(1,node1,node2);

var invertTree = function(root) {
		if(!root) return null;
    if(!root.left && !root.right) return root;
    
    let left = invertTree(root.left);
    let right = invertTree(root.right);
    
    root.left = right;
    root.right = left;
    
    return root;
};

function TreeNode(val, left, right) {
      this.val = (val===undefined ? 0 : val)
      this.left = (left===undefined ? null : left)
      this.right = (right===undefined ? null : right)
}

function printTree(tree){
	if(!tree) return null;
  
  console.log(tree.val);
  printTree(tree.left); 
  printTree(tree.right);
    
}

let tree = invertTree(root);
console.log(printTree(tree));