题解 | #树的子结构#
树的子结构
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 };