572. 另一棵树的子树

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


找子树只能从上向下找了,找到与子树根节点同值的,判断是否是相同数即结构相同,值相同。

    public boolean isSubtree(TreeNode root, TreeNode subRoot) {
        // 如果节点是null,返回false.
        if(root == null) {
            return false;
        }
        // 找到了值相同的。
        if(root.val == subRoot.val) {
            boolean ret = isSameTree(root,subRoot);
            // 如果该节点不行,还需要在找。
            if(ret) {
                return true;
            } 
        } 

        return isSubtree(root.left,subRoot) || isSubtree(root.right, subRoot);
        

    }

    public boolean isSameTree(TreeNode node1, TreeNode node2) {
        if(node1 == null || node2 == null) {
            return node1 == node2;
        }

        if(node1.val != node2.val) {
            return false;
        }

        return isSameTree(node1.left,node2.left) && isSameTree(node1.right, node2.right);

    }
posted @ 2022-02-23 14:59  一颗青菜  阅读(1)  评论(0)    收藏  举报