Open zentan66 opened 3 years ago
/**
* @param {TreeNode} root1
* @param {TreeNode} root2
* @return {boolean}
*/
var leafSimilar = function (root1, root2) {
const stack = []
function traverse(p) {
p.left && traverse(p.left)
p.right && traverse(p.right)
if (!p.left && !p.right) {
stack.push(p.val)
}
}
traverse(root1)
traverse(root2)
return (
stack.slice(0, stack.length / 2).toString() ===
stack.slice(stack.length / 2).toString()
)
}
请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。
举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。
如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。
如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。