题解 | #相逆叶子#

相逆叶子

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

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务