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)
# 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: # 노드가 빈노드, None 이면, 여기에 추가
node = TreeNode(val)
return node
# return TreeNode(val)
if node.val < val: # 추가하려는 값이, 현재 노드 값 보다 크면, 오른쪽으로 가서 추가해야 함
node.right = insert(node.right, val) # 추가하고 업데이트 꼭 해야 함!!
elif node.val > val: # 추가하려는 값이, 현재 노드 값 보다 크면, 왼쪽으로 가야 추가 해야 함
node.left = insert(node.left, val) # 추가하고 업데이트 꼭 해야 함!!
# 여기는 node.val == val 인 상황.. 이런 상황 없음.. 왜냐. 추가할거니깐
# 만약, 추가할 값이랑 현재 값이랑 같으면. 아무짓도 안함
return node
return insert(root, val)'job 인터뷰 > 코테(Matroid) 준비' 카테고리의 다른 글
| Tree: 235. Lowest Common Ancestor of a Binary Search Tree (0) | 2025.01.16 |
|---|---|
| Tree: 543. Diameter of Binary Tree ★ (0) | 2025.01.16 |
| 70. Climbing Stairs (0) | 2024.12.28 |
| [위상정렬] Graphs(싸이클탐지): 207. Course Schedule (2) | 2024.12.16 |
| Tree: 98. Validate Binary Search Tree (0) | 2024.12.15 |