- Notifications
You must be signed in to change notification settings - Fork 306
/
Copy path101_symmetricTree.py
35 lines (30 loc) · 1016 Bytes
/
101_symmetricTree.py
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
31
32
33
34
35
classSolution(object):
# Queue
defisSymmetric(self, root):
ifnotroot:
returnTrue
queue= [(root.left, root.right)]
whilequeue:
left, right=queue.pop(0)
ifnotleftandnotright:
continue
ifnotleftornotright:
returnFalse
ifleft.val!=right.val:
returnFalse
queue.append((left.left, right.right))
queue.append((left.right,right.left))
returnTrue
# Recursion
defisSymmetric2(self, root):
ifnotroot:
returnTrue
defdfs(left, right):
ifnotleftandnotright:
returnTrue
ifnotleftornotright:
returnFalse
ifleft.val!=right.val:
returnFalse
returndfs(left.left , right.right) anddfs(left.right, right.left)
returndfs(root.left, root.right)