题解 | #相逆叶子#
相逆叶子
https://www.nowcoder.com/practice/41c7b0e8710e43ca9f328bf06ea2aff3
/*
* function TreeNode(x) {
* this.val = x;
* this.left = null;
* this.right = null;
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root1 TreeNode类
* @param root2 TreeNode类
* @return bool布尔型
*/
function leafSimilar( root1 , root2 ) {
// write code here
if(!root1&&!root2) return true
if(!root1||!root2) return false
var r1 = []
var r2 = []
let r =[]
function Mid(root){
if(!root) return []
if(root.left) Mid(root.left)
if(root.right) Mid(root.right)
if(!root.left&&!root.right) r.push(root.val)
return r
}
r1 = Mid(root1)
r =[]
r2 = Mid(root2).reverse()
if(r1.length!==r2.length)
return false
else{
for(let i=0;i<r1.length;i++){
if(r1[i]!==r2[i]){
return false
}
}
return true
}
}
module.exports = {
leafSimilar : leafSimilar
};
考点,二叉树的遍历
思路:将二叉树的叶子结点遍历出来,放入数组当中,先比较两个数组的长度,长度相同再继续比较两个数组的对应的值,如果依次相同则为true,不同为false
查看22道真题和解析