1
class Solution:
2
def isSubtree(self, root: Optional[TreeNode], subRoot: Optional[TreeNode]) -> bool:
3
if subRoot == None:
4
return True
5
if root == None:
6
return False
7

8
sameTree = self.isSameTree(root, subRoot)
9
subTreeOnLeft = self.isSubtree(root.left, subRoot)
10
subTreeOnRight = self.isSubtree(root.right, subRoot)
11

12
return subTreeOnLeft or subTreeOnRight or sameTree
13

14
def isSameTree(self, root: Optional[TreeNode], subRoot: Optional[TreeNode]) -> bool:
15
if root == None and subRoot == None:
16
return True
17

18
if root == None or subRoot == None:
19
return False
20

21
if root.val != subRoot.val:
22
return False
23

24
return self.isSameTree(root.left, subRoot.left) and self.isSameTree(
25
root.right, subRoot.right
26
)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0