LeetCode/주제별 보충

DFS: Kth Smallest Element in a BST

hyunkookim 2024. 12. 15. 19:15

230. Kth Smallest Element in a BST

 

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def kthSmallest(self, root: Optional[TreeNode], k: int) -> int:
        # 왼->현->오른쪽..으로 리스트업하면. 즉 inorder 순회 전체 나오고 거기에서.. k번째 찾으면 됨

        res = []
        def dfs(node):
            if not node: # 노드 없으면 
                return # 그냥 끝내고

            if node.left:
                dfs(node.left)
            res.append(node.val)
            if node.right:
                dfs(node.right)

        dfs(root)

        return res[k-1] # 0이 1번째 이므로, k번째는 index가 k-1 임