572. Subtree of Another Tree

完全相同的子树结构:

public boolean isSubtree(TreeNode s, TreeNode t) {
    if (s == null || t == null) return false;
    if (dfs(s, t)) return true;
    return isSubtree(s.left, t) || isSubtree(s.right, t);
}

public boolean dfs(TreeNode s, TreeNode t) {
    if (s == null && t == null) return true;
    if (s == null || t == null) return false;
    return (s.val == t.val) && dfs(s.left, t.left) && dfs(s.right, t.right);
}

部分相同的子树结构, 如

[8,8,7,9,2,null,null,null,null,4,7]
[8,9,2]

区别点在sametree函数

public boolean HasSubtree(TreeNode s,TreeNode t) {
    if (s == null || t == null) return false;
    if (dfs(s, t)) return true;
    return HasSubtree(s.left, t) || HasSubtree(s.right, t);
}

public boolean dfs(TreeNode s, TreeNode t) {
    if (t == null) return true;
    if (s == null) return false;
    return (s.val == t.val) && dfs(s.left, t.left) && dfs(s.right, t.right);
}

results matching ""

    No results matching ""