LeetCode 572 题解

LeetCode 572 题解

给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F6g4tHyM-1605443841214)(https://imgkr2.cn-bj.ufileos.com/d411b45a-f689-414c-b2ce-8d68d4e85181.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=NhtCmzTCCamL8EIeP9ZhLLmDfG0%253D&Expires=1605529944)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OjJJ0UMQ-1605443841217)(https://imgkr2.cn-bj.ufileos.com/5a97ddf2-d850-48c5-9bed-f437857202c8.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=IwLR1vmO%252BlaHnXAasUWhpIDeT1c%253D&Expires=1605529959)]

代码实现

public boolean isSubtree(TreeNode s, TreeNode t) {
        if(s == null && t !=null) return false;
        // 判断一棵树 是不是另外一棵树的子树,有三种情况
        return isSubtree(s.left, t) || isSubtree(s.right, t) || isSubtreeWithRoot(s, t);
    }

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

欢迎关注公众号:程序员开发者社区

在这里插入图片描述

wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 19.89元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值