HackerRank SQL: Binary Tree Nodes
Binary Tree Nodes:
문제 이해하기가 너무 어렵다…
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:
- Root: If node is root node.
- Leaf: If node is leaf node.
- Inner: If node is neither root nor leaf node.
Sample Input
P가 Null일 경우 Root Node
N값이 P에 없을 때 Leaf Node
그 외의 경우는 Inner Node
Oracle
select N, /*subquery를 이용해서 노드 타입을 반환*/
( case when P is null then 'Root' /*P가 Null일때 Root*/
when N not in (select distinct P from BST where P is not null) then 'Leaf' /*N이 P값에 없으면 Leaf*/
else 'Inner' end /*그 외의 경우는 Inner */) as nType
from BST order by N;
언제 이런 문제를 참고하지 않을 수 있고 풀 수 있을지.. 앞으로 공부가 많이 필요해 보인다.