JSFiddle - React, Tailwind, and code Playground

by asdf

HTML

<!-- Determine if given binary tree is a mirror of itself, i.e. its left and right subtrees are identical mirror images. The following examples are mirror binary trees:
  1
 / \
2   2

and

     1
   /     \
  2      2
 /  \    /   \
4    3   3   4

the following trees are NOT mirror trees:
    1
   / \
  2   2
   \     \
   3     3

and

        1
     /     \
    2       2 
   /  \     /   \
  3  4   3   4 -->

JavaScript

// Determine if given binary tree is a mirror of itself
function getNode(value, left, right) {
   return {
   		 value: value,
       left: left,
       right: right
   };
}

var node3 = getNode(3);
var node4 = getNode(4);
var node21 = getNode(2, node4, node3);
var node22 = getNode(2, node3, node4);
var root1 = getNode(1, node21, node22);
var root2 = getNode(1, node22, node22);

function isMirrored(root, root2) {
	var mirrored = false;
  if (!root && !root2) {
  	return true;
  }
  if ((root && !root2) || (!root && root2) || root.value !== root2.value) {
  	return false;
  }
  mirrored = isMirrored(root.left, root2.right) && isMirrored(root.right, root2.left);
	return mirrored;
}

console.log(isMirrored(root1, root1));
console.log(isMirrored(root2, root2));