You are viewing a single comment's thread. Return to all comments →
Solution 1: Oracle/MySQL/MS SQL Server
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;
Solution 2: Oracle/MySQL/MS SQL Server
SELECT n, CASE WHEN p IS NULL THEN 'Root' WHEN EXISTS (SELECT * FROM bst in_bst WHERE in_bst.p = out_bst.n) THEN 'Inner' ELSE 'Leaf' END FROM bst out_bst ORDER BY n;
Solution 3: Oracle/MySQL/MS SQL Server
SELECT n, CASE WHEN p IS NULL THEN 'Root' WHEN ((SELECT COUNT(*) FROM bst in_bst WHERE in_bst.p = out_bst.n) > 0) THEN 'Inner' ELSE 'Leaf' END FROM bst out_bst ORDER BY n;
Solution 4: Oracle/MySQL/MS SQL Server
SELECT n, CASE WHEN p IS NULL THEN 'Root' WHEN n IN (SELECT bst_1.p FROM bst bst_1 JOIN bst bst_2 ON bst_1.p = bst_2.n) THEN 'Inner' ELSE 'Leaf' END FROM bst ORDER BY n;
Solution 5: MySQL
SELECT n, IF(p IS NULL, 'Root', IF((SELECT COUNT(*) FROM bst in_bst WHERE in_bst.p = out_bst.n) > 0, 'Inner', 'Leaf')) FROM bst out_bst ORDER BY n;
Binary Tree Nodes
You are viewing a single comment's thread. Return to all comments →
Solution 1: Oracle/MySQL/MS SQL Server
Solution 2: Oracle/MySQL/MS SQL Server
Solution 3: Oracle/MySQL/MS SQL Server
Solution 4: Oracle/MySQL/MS SQL Server
Solution 5: MySQL