0. 문제
https://leetcode.com/problems/insert-into-a-binary-search-tree/
1. 문제 설명
- 문제에서 이진탐색트리(= root)와 정수(= val)가 주어진다.
- 이 문제는 문제에서 주어진 정수(= val)를 이진탐색트리에 삽입하는 것이 핵심이다.
2. 문제 해설
a) 첫 번째 접근
- 이진 탐색 트리의 특징을 이용하여 트리를 탐색한다.
- 탐색 과정에서 노드의 value와 정수(= val)를 비교하여, 좌측 또는 우측을 탐색한다.
- 자식 노드를 탐색하는 과정에서 해당 노드가 null인 경우, 새로운 노드를 삽입한다.
- 이 과정을 재귀 함수로 구현하면 끝이다.
- 다음 코드를 보면서 이해해보자.
3. 정답 코드
class Solution {
public TreeNode insertIntoBST(TreeNode root, int val) {
if(root == null) {
root = new TreeNode(val);
}
else if(root.val > val) {
root.left = insertIntoBST(root.left, val);
}
else if(root.val < val) {
root.right = insertIntoBST(root.right, val);
}
return root;
}
}
'Algorithm > 알고리즘 문제풀이' 카테고리의 다른 글
LeetCode 653(Two Sum IV - Input is a BST, java) (0) | 2022.04.22 |
---|---|
LeetCode 98(Validate Binary Search Tree, java) (0) | 2022.04.22 |
LeetCode 700(Search in a Binary Search Tree, java) (0) | 2022.04.21 |
LeetCode 112(Path Sum, java) (0) | 2022.04.21 |
LeetCode 226(Invert Binary Tree, java) (0) | 2022.04.20 |
댓글