版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
leetcode 算法题872 (简单227) 叶子相似的树
- 题目介绍
请考虑一颗二叉树上所有的叶子,
这些叶子的值按从左到右的顺序排列形成一个 叶值序列
举个例子,如上图所示,
给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。
如果有两颗二叉树的叶值序列是相同,
那么我们就认为它们是 叶相似 的。
如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,
则返回 true;否则返回 false 。
- 提示
给定的两颗树可能会有 1 到 100 个结点。
- 解法一
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root1
* @param {TreeNode} root2
* @return {boolean}
*/
var leafSimilar = function(root1, root2) {
let temp1 = [], temp2 = [], i = 0;
setSeries(root1, temp1);
setSeries(root2, temp2);
if(temp1.length !== temp2.length) {
return false;
}
while(i < temp1.length) {
if(temp1[i] !== temp2[i++]) {
return false;
}
}
return true;
};
const setSeries = (node, temp) => {
if(node.left && node.right) {
setSeries(node.left, temp);
setSeries(node.right, temp);
return;
}
if(node.left || node.right) {
setSeries(node.left || node.right, temp);
return;
}
temp.push(node.val);
}
执行用时 : 60 ms, 在所有 JavaScript 提交中击败了98.17%的用户
内存消耗 : 34.9 MB, 在所有 JavaScript 提交中击败了39.29%的用户