leetcode记录:问题简单:100. Same Tree

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 18:53   861   0

题目出处:https://leetcode.com/problems/same-tree/

题目描述:

给定两个二叉树,编写一个函数来检查它们是否相同。

如果两个二叉树在结构上相同并且节点具有相同的值,则认为它们是相同的。

Example 1:

Input:     1         1               1         1              
          / \       / \             /           \        
         2   3     2   3           2             2
    
        [1,2,3],   [1,2,3]        [1,2],   [1,null,2]     
        
          
Output: true                       Output: false

Example 2:

Input:     1         1
          / \       / \
         2   1     1   2

        [1,2,1],   [1,1,2]

Output: false

思路:

我自己是想把各个节点上的值,组成数组比较,因为即便是null是可以被push进数组的,但是报错了,原因很奇怪。

我在循环里输出了a[i],b[i],leetcode上返回的是节点,但是我自己返回是个数组,所以导致了结果不同

代码:

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} p
 * @param {TreeNode} q
 * @return {boolean}
 */
var isSameTree = function(p, q) {
    if(!p && !q) return true
    if(!p || !q) return false

    let a = [];
    let b = [];
    let result = true;
    
    a = a.concat([p.val,p.left,p.right]);
    b = b.concat([q.val,q.left,q.right]);
    for(let i =0,len = a.length;i<len;i++){
     if(a[i] !== b[i]){
            console.log(a[i])
            console.log(b[i])
      result = false;
      break
     }
    }
    return result
};

大佬代码:

var isSameTree = function(p, q) {
    var val = false
    const traversal = (top1, top2) => {
    if(!top1 && !top2) return true;
    let returnValue = false;
    if(top1 && top2) {
        returnValue = top1.val === top2.val;
    }
    else if((top1 && !top2) || (!top1 && top2)){
        returnValue = false;
    }
    
    if(returnValue) {
        returnValue = traversal(top1.left, top2.left);
    }
    
    if(returnValue) {
        returnValue = traversal(top1.right, top2.right);
    }
    
    return returnValue;
}

val = traversal(p, q);

return val;
};

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP