天天看點

leetcode刷題MySQL題解十四

leetcode刷題MySQL題解十四

題目叙述

給定一個表 tree,id 是樹節點的編号, p_id 是它父節點的 id 。

±—±-----+

| id | p_id |

±—±-----+

| 1 | null |

| 2 | 1 |

| 3 | 1 |

| 4 | 2 |

| 5 | 2 |

±—±-----+

樹中每個節點屬于以下三種類型之一:

葉子:如果這個節點沒有任何孩子節點。

根:如果這個節點是整棵樹的根,即沒有父節點。

内部節點:如果這個節點既不是葉子節點也不是根節點。

寫一個查詢語句,輸出所有節點的編号和節點的類型,并将結果按照節點編号排序。上面樣例的結果為:

題目解答

# Write your MySQL query statement below
select id, if(p_id is null, 'Root', if(id in (select p_id from tree t0), 'Inner', 'Leaf')) as Type from tree t1;      

題目運作