Skip to content

Commit f345476

Browse files
committed
feat: week13 - kth smallest element
1 parent 2b2a951 commit f345476

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'''
2+
Time Complexity: O(N)
3+
- dfs ํ•จ์ˆ˜๊ฐ€ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์ค‘์œ„์ˆœํšŒ ๋ฐฉ์‹์œผ๋กœ ๋ฐฉ๋ฌธํ•จ๋ฏ€๋กœ O(N) ์†Œ์š”
4+
5+
Space Complexity: O(N)
6+
- aligned_arr ๋ฆฌ์ŠคํŠธ์— ๋ชจ๋“  ๋…ธ๋“œ์˜ ๊ฐ’์„ ์ €์žฅํ•˜๋ฏ€๋กœ O(N) ์†Œ์š”
7+
- ์žฌ๊ท€ ํ˜ธ์ถœ ์Šคํƒ์ด ์ตœ๋Œ€ ํŠธ๋ฆฌ์˜ ๋†’์ด๋งŒํผ ์Œ“์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ตœ์•…์˜ ๊ฒฝ์šฐ O(N) ์†Œ์š”
8+
'''
9+
10+
# Definition for a binary tree node.
11+
# class TreeNode:
12+
# def __init__(self, val=0, left=None, right=None):
13+
# self.val = val
14+
# self.left = left
15+
# self.right = right
16+
class Solution:
17+
def kthSmallest(self, root: Optional[TreeNode], k: int) -> int:
18+
aligned_arr = []
19+
20+
def dfs(node):
21+
if not node:
22+
return
23+
dfs(node.left)
24+
aligned_arr.append(node.val)
25+
dfs(node.right)
26+
27+
dfs(root)
28+
29+
return aligned_arr[k - 1]
30+
31+

0 commit comments

Comments
ย (0)