ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 树的子结构 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) Step1.在树A中找到和B的根结点的值一样的结点R; Step2.判断树A中以R为根结点的子树是不是包含和树B一样的结点。 ``` /* function TreeNode(x) { this.val = x; this.left = null; this.right = null; } */ function isSubtree(root1, root2) { if (root2 == null) return true; if (root1 == null) return false; if (root1.val == root2.val) { return isSubtree(root1.left, root2.left) && isSubtree(root1.right, root2.right); } else { return false; } } function HasSubtree(pRoot1, pRoot2) { if (pRoot1 == null || pRoot2 == null) { return false; } return isSubtree(pRoot1, pRoot2) || HasSubtree(pRoot1.left, pRoot2) || HasSubtree(pRoot1.right, pRoot2); } ```