Skip to content

Commit 74b9d00

Browse files
committed
upload on 3/11
1 parent 45fa85d commit 74b9d00

5 files changed

+110
-0
lines changed

100. Same Tree.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
9+
class Solution:
10+
11+
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
12+
if p and q:
13+
return p.val == q.val and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
14+
return p is q

101. Symmetric Tree.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
9+
class Solution:
10+
11+
def isSymmetric(self, root: TreeNode) -> bool:
12+
if not root:
13+
return True
14+
return self.helper(root.left, root.right)
15+
16+
def helper(self, left, right):
17+
if not left and not right:
18+
return True
19+
elif left and right:
20+
return left.val == right.val and self.helper(left.left, right.right) and self.helper(left.right, right.left)
21+
else:
22+
return False
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
9+
class Solution:
10+
11+
def levelOrder(self, root: TreeNode) -> List[List[int]]:
12+
if not root:
13+
return []
14+
q = collections.deque()
15+
q.append((root, 0))
16+
res = []
17+
while q:
18+
temp, level = q.popleft()
19+
if len(res) - 1 == level:
20+
res[level].append(temp.val)
21+
else:
22+
res.append([temp.val])
23+
if temp.left:
24+
q.append((temp.left, level + 1))
25+
if temp.right:
26+
q.append((temp.right, level + 1))
27+
return res
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
9+
class Solution:
10+
11+
def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:
12+
if not root:
13+
return []
14+
res = []
15+
q = collections.deque()
16+
q.append((root, 0))
17+
while q:
18+
temp, level = q.popleft()
19+
if level % 2 == 0:
20+
if len(res) - 1 == level:
21+
res[level].insert(0, temp.val)
22+
else:
23+
res.append([temp.val])
24+
else:
25+
if len(res) - 1 == level:
26+
res[level].append(temp.val)
27+
else:
28+
res.append([temp.val])
29+
if temp.right:
30+
q.append((temp.right, level + 1))
31+
if temp.left:
32+
q.append((temp.left, level + 1))
33+
return res

104. Maximum Depth of Binary Tree.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
9+
class Solution:
10+
11+
def maxDepth(self, root: TreeNode) -> int:
12+
if not root:
13+
return 0
14+
return max(self.maxDepth(root.left) + 1, self.maxDepth(root.right) + 1)

0 commit comments

Comments
 (0)