No Polo Norte, os elfos têm duas árvores binárias mágicas que geram energia 🌲🌲 para manter acesa a estrela natalina ⭐️. No entanto, para que funcionem corretamente, as árvores devem estar em perfeita sincronia como espelhos 🪞.
Duas árvores binárias são espelhos se:
E a árvore é representada com três propriedades value, left e right. Dentro destas duas últimas se vai mostrando o resto dos ramos (se houver):
const tree = {
value: '⭐️',
left: {
value: '🎅'
// left: {...}
// right: { ... }
},
right: {
value: '🎁'
// left: { ... }
// right: { ... }
}
}tree = {
'value': '⭐️',
'left': {
'value': '🎅'
# left: {...}
# right: { ... }
},
'right': {
'value': '🎁'
# left: { ... }
# right: { ... }
}
}
Papai Noel precisa de sua ajuda para verificar se as árvores estão sincronizadas para que a estrela possa continuar brilhando. Você deve devolver um array onde a primeira posição indica se as árvores estão sincronizadas e a segunda posição devolve o valor da raiz da primeira árvore.
const tree1 = {
value: '🎄',
left: { value: '⭐' },
right: { value: '🎅' }
}
const tree2 = {
value: '🎄',
left: { value: '🎅' },
right: { value: '⭐' }
}
isTreesSynchronized(tree1, tree2) // [true, '🎄']
/*
tree1 tree2
🎄 🎄
/ \ / \
⭐ 🎅 🎅 ⭐
*/
const tree3 = {
value: '🎄',
left: { value: '🎅' },
right: { value: '🎁' }
}
isTreesSynchronized(tree1, tree3) // [false, '🎄']
const tree4 = {
value: '🎄',
left: { value: '⭐' },
right: { value: '🎅' }
}
isTreesSynchronized(tree1, tree4) // [false, '🎄']
isTreesSynchronized(
{ value: '🎅' },
{ value: '🧑🎄' }
) // [false, '🎅']tree1 = {
'value': '🎄',
'left': { 'value': '⭐' },
'right': { 'value': '🎅' }
}
tree2 = {
'value': '🎄',
'left': { 'value': '🎅' },
'right': { 'value': '⭐' }
}
is_trees_synchronized(tree1, tree2) # [True, '🎄']
# tree1 tree2
# 🎄 🎄
# / \ / \
# ⭐ 🎅 🎅 ⭐
tree3 = {
'value': '🎄',
'left': { 'value': '🎅' },
'right': { 'value': '🎁' }
}
is_trees_synchronized(tree1, tree3) # [False, '🎄']
tree4 = {
'value': '🎄',
'left': { 'value': '⭐' },
'right': { 'value': '🎅' }
}
is_trees_synchronized(tree1, tree4) # [False, '🎄']
is_trees_synchronized(
{ 'value': '🎅' },
{ 'value': '🧑🎄' }
) # [False, '🎅']
