leetcode

我的 leetcode 题解(JavaScript)


/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} s
 * @param {TreeNode} t
 * @return {boolean}
 */
const isSubtree = function (s, t) {
  if (s === null) {
    return false;
  }
  if (diff(s, t)) {
    return true;
  }
  return isSubtree(s.left, t) || isSubtree(s.right, t); // 只要有与 t 相同的子树就返回 true
};
// 当两棵树同时判断到边界,代表两棵树相同
const diff = function (s, t) {
  if (s === null && t === null) {
    return true;
  }
  if (s === null || t === null || s.val !== t.val) {
    return false;
  }
  return diff(s.left, t.left) && diff(s.right, t.right);
}