Leetcode相同树迭代解决方案

时间:2020-11-02 12:54:59

标签: javascript algorithm binary-tree breadth-first-search

眼前的问题:https://leetcode.com/problems/same-tree/

有人可以指出为什么我的JavaScript解决方案可以通过测试用例,但是在实际提交期间却失败了吗?

var isSameTree = function(p, q) {
  let queue = [];
  queue.push(p);
  queue.push(q);
  while (!queue.length) {
    let p = queue.shift();
    let q = queue.shift();

    if (p == null && q == null) {
      continue;
    } else if (p == null || q == null || p.val != q.val) {
      return false;
    } else {
      queue.push(p.left);
      queue.push(q.left);
      queue.push(p.right);
      queue.push(q.right);
    }
  }
  return true;
};

1 个答案:

答案 0 :(得分:1)

@trincot在评论中提到了它。

只需更新while循环内的比较即可进入该循环。

var isSameTree = function(p, q) {
  let queue = [];
  queue.push(p);
  queue.push(q);
  while (queue.length != 0) {
    let p = queue.shift();
    let q = queue.shift();

    if (p == null && q == null) {
      continue;
    } else if (p == null || q == null || p.val != q.val) {
      return false;
    } else {
      queue.push(p.left);
      queue.push(q.left);
      queue.push(p.right);
      queue.push(q.right);
    }
  }
  console.log(queue);
  return true;
};

这将通过所有测试用例。