【leetcode】572. 另一棵树的子树

60 阅读1分钟

leetcode-572.png

题目简述:判断一棵树是不是另外一棵树的子树。
说到这里,就要说另外一个更简单的题目了,判断两棵树是否是相同的树。在这一题中,会用到这个。

var isSubtree = function (root, subRoot) {
    if (!root) return false
    if (sameTree(root, subRoot)) return true
    // 递归进入左右子树
    return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot)
};
var sameTree = function (root1, root2) {
    // 这里的头两个if的判断顺序不能弄反了
    // 两个都为空,那么就是走到头了
    if (!root1 && !root2) return true
    // 进入这个if只可能有其中一个为空,那么也是
    if (!root1 || !root2) return false
    if (root1.val === root2.val) {
        return sameTree(root1.left, root2.left) && sameTree(root1.right, root2.right)
    }
}