题解 | #树的子结构#
树的子结构
https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function HasSubtree(pRoot1, pRoot2)
{
// write code here
if (pRoot1 === null || pRoot2 === null) return false
let isSub = false
if (pRoot1.val === pRoot2.val) {
if (pRoot2.left === null && pRoot2.right === null) {
isSub = true
} else if (pRoot2.left === null) {
isSub = HasSubtree(pRoot1.right, pRoot2.right)
} else if (pRoot2.right === null) {
isSub = HasSubtree(pRoot1.left, pRoot2.left)
} else {
isSub = HasSubtree(pRoot1.left, pRoot2.left) && HasSubtree(pRoot1.right, pRoot2.right)
}
}
return isSub || HasSubtree(pRoot1.left, pRoot2) || HasSubtree(pRoot1.right, pRoot2)
}
module.exports = {
HasSubtree : HasSubtree
};


