Skip to content

Commit 9898596

Browse files
committed
solved BST + BFS
1 parent 9b2b165 commit 9898596

File tree

4 files changed

+93
-2
lines changed

4 files changed

+93
-2
lines changed

Easy/530.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Definition for a binary tree node.
2+
from typing import Optional
3+
4+
5+
class TreeNode:
6+
def __init__(self, val=0, left=None, right=None):
7+
self.val = val
8+
self.left = left
9+
self.right = right
10+
11+
12+
class Solution:
13+
def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
14+
inres = []
15+
16+
def inorder(node):
17+
if not node:
18+
return
19+
inorder(node.left)
20+
inres.append(node.val)
21+
inorder(node.right)
22+
23+
inorder(root)
24+
inres[::-1]
25+
res = inres[1] - inres[0]
26+
for i in range(1, len(inres)):
27+
res = min(inres[i] - inres[i - 1], res)
28+
return res

Easy/637.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Definition for a binary tree node.
2+
from collections import deque
3+
from typing import List, Optional
4+
5+
6+
class TreeNode:
7+
def __init__(self, val=0, left=None, right=None):
8+
self.val = val
9+
self.left = left
10+
self.right = right
11+
12+
13+
class Solution:
14+
def averageOfLevels(self, root: Optional[TreeNode]) -> List[float]:
15+
res = []
16+
17+
q = deque()
18+
q.append(root)
19+
while q:
20+
summ = 0
21+
length = len(q)
22+
for i in range(length):
23+
node = q.popleft()
24+
summ += node.val
25+
if node.right:
26+
q.append(node.right)
27+
if node.left:
28+
q.append(node.left)
29+
res.append(summ / length)
30+
return res

Medium/103.py

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+
from collections import deque
3+
from typing import List, Optional
4+
5+
6+
class TreeNode:
7+
def __init__(self, val=0, left=None, right=None):
8+
self.val = val
9+
self.left = left
10+
self.right = right
11+
12+
13+
class Solution:
14+
def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
15+
if not root:
16+
return []
17+
directon = 1
18+
res = []
19+
q = deque()
20+
q.append(root)
21+
while q:
22+
curr = []
23+
length = len(q)
24+
for i in range(length):
25+
node = q.popleft()
26+
if node.left:
27+
q.append(node.left)
28+
if node.right:
29+
q.append(node.right)
30+
curr.append(node.val)
31+
res.append(curr[::directon])
32+
directon *= -1
33+
return res

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ This repository contains my solutions to various LeetCode problems. Each solutio
1717

1818
### Easy Problems
1919

20-
- **Total Solved:** [50]
20+
- **Total Solved:** [52]
2121

2222
### Medium Problems
2323

24-
- **Total Solved:** [128]
24+
- **Total Solved:** [129]
2525

2626
### Hard Problems
2727

0 commit comments

Comments
 (0)