/**
* 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);
}