题解 | #相逆叶子#
相逆叶子
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