Leetcode刷题记录——572. 另一个树的子树

在这里插入图片描述

定义一个函数
判断以输入的两个节点位根的树是否是相同的树

主函数
如果t是s的一个子树的话
需由t和s是相同的树 或 t是s的左孩子的一个子树 或 t是s的右孩子的一个子树


# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:

    def isSubtree(self, s: TreeNode, t: TreeNode) -> bool:
        if s == None:
            return False
        return True if self.is_same_tree(s,t) or self.isSubtree(s.left,t) or self.isSubtree(s.right,t) else False

    def is_same_tree(self,a,b):
        #if b in self.res and a in self.res[b]:
        #    return True
        if (a == None and b != None) or (a != None and b == None):
            return False
        if a == None and b == None:
            return True
        if a.val == b.val and self.is_same_tree(a.left,b.left) and self.is_same_tree(a.right,b.right):
            return True
        else:
            return False 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值