https://www.hackerrank.com/challenges/binary-search-tree-1/problem
You are given a table, BST, containing two columns: N and P, where N represents the value of a node in Binary Tree, and P is the parent of N.
Write a query to find the node type of Binary Tree ordered by the value of the node. Output one of the following for each node:
1 Leaf
2 Inner
3 Leaf
5 Root
6 Leaf
8 Inner
9 Leaf
The Binary Tree below illustrates the sample:
select n||' '||
case when p is null then 'Root'
when connect_by_isleaf=1 then 'Leaf'
else 'Inner' end
from bst
start with p is null
connect by prior n=p
order by n;
case when
과 계층 쿼리
를 사용했다.
확실히 프로그래머스 문제보다 난이도가 있는 것 같다.
p가 null
인 것을 루트로 시작해서 순방향 전개를 했다.
만약 p가 null이면(5), Root
를 뒤에 붙여주었다.
만약 리프이면, 즉 맨 하위 노드(connect_by_isleaf
)면, 1
이 출력되기 때문에 그렇다면 Leaf
로 출력해주었다.
위에 두 가지 경우에 포함되지 않는다면 둘다 아닌 것으로 Inner
를 출력해주었다.