LeetCode/주제별 보충

BST: 701. Insert into a Binary Search Tree

hyunkookim 2025. 1. 15. 14:42

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 insertIntoBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
        
        def insert(node, val):
            if not node: # 노드 없으면,
                return TreeNode(val) # 노드 만들어서 리턴

            if val < node.val: # 넣는 값이, 현재 노드값보다 작으면 왼쪽에 삽입
                node.left = insert(node.left, val) 
            elif val > node.val: # 넣는 값이, 현재 노드값보다 크면 오른쪽에 삽입
                node.right = insert(node.right, val) 
            # else: # 현재값과 같으면 <-- 이런 경우 없음, 
            # It is guaranteed that the new value does not exist in the original BST.
            # 기존 값과 같은 같을 추가하지는 않는다고 함

            return node

        return insert(root, val)