文章

每日LeetCode 176-177

2021.5.16 ・ 共 497 字,您可能需要 1 分钟阅读

Tags: LeetCode

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)

B是A的子结构, 即 A中有出现和B相同的结构和节点值。

例如: 给定的树 A:

 3
/ \

4 5 /
1 2 给定的树 B:

4 / 1 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public boolean isSubStructure(TreeNode A, TreeNode B) {
        if (A == null || B == null) {
            return false;
        }
        return fun(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B);
    }
    public boolean fun(TreeNode A, TreeNode B){
        if (B == null) {
            return true;
        }
        if (A == null || A.val != B.val) {
            return false;
        }
        return fun(A.left, B.left) && fun(A.right, B.right);
    }
}

请完成一个函数,输入一个二叉树,该函数输出它的镜像。

例如输入:

 4

/
2 7 / \ /
1 3 6 9 镜像输出:

 4

/
7 2 / \ /
9 6 3 1

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public TreeNode mirrorTree(TreeNode root) {
        if (root == null) {
            return null;
        }
        TreeNode temp = root.left;
        root.left = mirrorTree(root.right);
        root.right = mirrorTree(temp);
        return root;
    }
}