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));