Allen's 데이터 맛집
HackerRank lv. Medium : Binary Tree Nodes 본문
문제
풀이
select N,
case
when P is NULL then "Root"
when N in (select P from bst) then "Inner"
else "Leaf"
end
from
bst
order by
N
해당 문제는 이진 탐색 트리(BST)의 각 노드에 대해 해당 노드의 유형을 결정하는 것입니다.
1. 각 노드의 이름(N)을 선택합니다.
2. CASE 문을 사용하여 각 노드의 유형을 확인합니다.
- P 값이 NULL인 경우: 이는 루트 노드를 나타냅니다. 따라서 "Root"로 표시됩니다.
- P 값이 NULL이 아니고, 해당 노드의 이름(N)이 다른 노드의 부모 노드로 지정된 경우: 이는 내부 노드를 나타냅니다.
따라서 "Inner"로 표시됩니다.
- 그렇지 않은 경우: 이는 리프(잎) 노드를 나타냅니다. 따라서 "Leaf"로 표시됩니다.
3. 이진 탐색 트리(BST) 테이블(bst)을 기준으로 결과를 정렬합니다.
이 쿼리는 이진 탐색 트리에서 각 노드의 위치와 역할을 확인하는 데 사용됩니다.
https://www.hackerrank.com/challenges/binary-search-tree-1/problem?isFullScreen=true