定义一个函数
判断以输入的两个节点位根的树是否是相同的树
主函数
如果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