알고리즘/SQL

HackerRank - Binary Tree Nodes

beautifulhill 2022. 3. 18. 07:29

 

* 이진트리에서 루트노드인지 이너노드인지 잎새노드인지 구분하는 문제

루트노드 : 부모노드가 없는 경우, P가 NULL인 경우

이너노드 : 부모노드에 있는 수, P컬럼에 있는 수

잎새노드 : 그 외

 

SELECT N,
CASE WHEN P IS NULL THEN 'Root' 
    WHEN N IN (SELECT DISTINCT P FROM BST) THEN 'Inner'
    ELSE 'Leaf'
END
FROM BST
ORDER BY N