오늘도 개발

46. Insert into a Binary Search Tree 본문

자료구조 & 알고리즘/Leetcode

46. Insert into a Binary Search Tree

Sueeeeeee 2022. 11. 12. 22:27

문제

BST에 노드를 삽입하시오. 

 

내가 해결한 방식

출처 : [Leetcode] 701 .  Insert into a Binary Search Tree

class Solution:
    def insertIntoBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
    	# 빈 트리인 경우
        if not root:
            root = TreeNode(val)
            return root
        
        def recursive_insert(root_node):
        	# 삽입할 값이 현재 노드보다 작은 경우
            if val < root_node.val:
                # 현재 노드의 좌측 확인
                if root_node.left:
                    recursive_insert(root_node.left)
                else:
                    root_node.left = TreeNode(val)
                    
            # 삽입할 값이 현재 노드보다 큰 경우
            else:
            	# 현재 노드의 우측 확인
                if root_node.right:
                    recursive_insert(root_node.right)
                else:
                    root_node.right = TreeNode(val)
        
        recursive_insert(root)
        return root