微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Leetcode相同树迭代解决方案

如何解决Leetcode相同树迭代解决方案

眼前的问题: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;
};

解决方法

@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;
};

这将通过所有测试用例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。