-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0572.py
More file actions
30 lines (23 loc) · 1 KB
/
0572.py
File metadata and controls
30 lines (23 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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, root: Optional[TreeNode], subRoot: Optional[TreeNode]) -> bool:
def check(node, sub):
if node == None and sub == None:
return True
if (node and not sub) or (not node and sub):
return False
if node.val == sub.val:
return check(node.left, sub.left) and check(node.right, sub.right)
return False
def traverse(node):
if check(node, subRoot):
return True
left = traverse(node.left) if node.left else False
right = traverse(node.right) if node.right else False
return left or right
return traverse(root)