HackerRank | Binary Tree Nodes

jeonghens·2025년 5월 28일
0

SQL: HackerRank

목록 보기
19/49

HackerRank Binary Tree Nodes


어떤 노드가 취할 수 있는 경우를 그려보면 다음과 같다.

[1] 어떤 노드가 Root Node라면, 그 노드의 부모 노드가 Null이어야 한다.
[2] 어떤 노드가 Leaf Node라면, 그 노드가 어떤 노드의 부모 노드가 아니어야 한다.
[3] 어떤 노드가 Inner Node라면, 그 노드의 부모 노드와 자식 노드가 모두 Null이 아니어야 한다.

그리고 CASE WHEN THEN 구문을 통해 이를 구현할 수 있다.


SELECT
    N,
    CASE
        WHEN P IS NULL THEN 'Root'
        WHEN N NOT IN (SELECT DISTINCT P FROM BST WHERE P IS NOT NULL) THEN 'Leaf'
        ELSE 'Inner'
    END AS N_TYPE
FROM
    BST
ORDER BY
    N ASC;
profile
알고리즘이나 SQL 문제 풀이를 올리고 있습니다. 피드백 환영합니다!

0개의 댓글