Skip to content

Commit 3b711af

Browse files
committed
D. J.:
- Added the leetcode problem and solution for 102 and 103 - Fixed typing errors
1 parent 6073ef9 commit 3b711af

File tree

62 files changed

+180
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+180
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from typing import List, Optional
2+
3+
from awesome_python_leetcode.tree import TreeNode
4+
5+
6+
class Solution:
7+
"""Base class for all LeetCode Problems."""
8+
9+
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
10+
"""
11+
Given the root of a binary tree, return the level order traversal of its nodes'
12+
values. (i.e., from left to right, level by level).
13+
"""
14+
if root is None:
15+
return []
16+
parents = [root]
17+
result = []
18+
while parents:
19+
# Build childs and level
20+
childs = []
21+
level = []
22+
for p in parents:
23+
if p.left:
24+
childs.append(p.left)
25+
if p.right:
26+
childs.append(p.right)
27+
level.append(p.val)
28+
parents = childs
29+
result.append(level)
30+
return result
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from typing import List, Optional
2+
3+
from awesome_python_leetcode.tree import TreeNode
4+
5+
6+
class Solution:
7+
"""Base class for all LeetCode Problems."""
8+
9+
def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
10+
"""
11+
Given the root of a binary tree, return the zigzag level order traversal of its
12+
nodes' values. (i.e., from left to right, then right to left for the next level
13+
and alternate between).
14+
"""
15+
if root is None:
16+
return []
17+
parents = [root]
18+
result = []
19+
even_level = True
20+
while parents:
21+
# Build childs and zig-zag levelorder
22+
childs = []
23+
levelorder = []
24+
for p in reversed(parents):
25+
if even_level:
26+
if p.left:
27+
childs.append(p.left)
28+
if p.right:
29+
childs.append(p.right)
30+
else:
31+
if p.right:
32+
childs.append(p.right)
33+
if p.left:
34+
childs.append(p.left)
35+
levelorder.append(p.val)
36+
parents = childs
37+
result.append(levelorder)
38+
even_level = not even_level
39+
return result

awesome_python_leetcode/_136_single_number.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33

44
class Solution:
5+
"""Base class for all LeetCode Problems."""
6+
57
def singleNumber(self, nums: List[int]) -> int:
68
"""
79
Given a non-empty array of integers nums, every element appears twice except for

awesome_python_leetcode/_137_single_number_II.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33

44
class Solution:
5+
"""Base class for all LeetCode Problems."""
6+
57
def singleNumber(self, nums: List[int]) -> int:
68
"""
79
Given an integer array nums where every element appears three times except for

awesome_python_leetcode/_190_reverse_bits.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
class Solution:
2+
"""Base class for all LeetCode Problems."""
3+
24
def reverseBits(self, n: int) -> int:
35
"""Reverse bits of a given 32 bits unsigned integer."""
46
res = 0

awesome_python_leetcode/_191_number_of_1_bits.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
class Solution:
2+
"""Base class for all LeetCode Problems."""
3+
24
def hammingWeight(self, n: int) -> int:
35
"""
46
Given a positive integer n, write a function that returns the number of set bits

awesome_python_leetcode/_199_binary_tree_right_side_view.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55

66
class Solution:
7+
"""Base class for all LeetCode Problems."""
8+
79
def rightSideView(self, root: Optional[TreeNode]) -> List[int]:
810
"""
911
Given the root of a binary tree, imagine yourself standing on the right side of

awesome_python_leetcode/_201_bitwise_and_of_numbers_range.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
class Solution:
2+
"""Base class for all LeetCode Problems."""
3+
24
def rangeBitwiseAnd(self, left: int, right: int) -> int:
35
"""
46
Given two integers left and right that represent the range [left, right],

awesome_python_leetcode/_637_average_of_levels_in_binary_tree.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55

66
class Solution:
7+
"""Base class for all LeetCode Problems."""
8+
79
def averageOfLevels(self, root: Optional[TreeNode]) -> List[float]:
810
"""
911
Given the root of a binary tree, return the average value of the nodes on each

0 commit comments

Comments
 (0)