File tree Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Original file line number Diff line number Diff line change @@ -599,6 +599,7 @@ Your ideas/fixes/algorithms are more than welcome!
599599| 613| [ Shortest Distance in a Line] ( https://leetcode.com/problems/shortest-distance-in-a-line/ ) | [ Solution] ( ../master/database/_613.sql )  |  ||  Easy| 
600600| 612| [ Shortest Distance in a Plane] ( https://leetcode.com/problems/shortest-distance-in-a-plane/ ) | [ Solution] ( ../master/database/_612.sql )  |  ||  Medium| 
601601| 610| [ Triangle Judgement] ( https://leetcode.com/problems/triangle-judgement/ ) | [ Solution] ( ../master/src/main/java/com/fishercoder/solutions/_610.java )  |  |  |  Easy |  
602+ |608|[ Tree Node] ( https://leetcode.com/problems/tree-node/ ) |[ Solution] ( ../master/database/_608.sql )  | | | Medium | Union
602603| 607| [ Sales Person] ( https://leetcode.com/problems/sales-person/ ) | [ Solution] ( ../master/database/_607.sql )  |  |  |  Easy | 
603604| 602| [ Friend Requests II: Who Has the Most Friends] ( https://leetcode.com/problems/friend-requests-ii-who-has-the-most-friends/ ) | [ Solution] ( ../master/database/_602.sql )  |  |  |  Medium | 
604605| 597| [ Friend Requests I: Overall Acceptance Rate] ( https://leetcode.com/problems/friend-requests-i-overall-acceptance-rate/ ) | [ Solution] ( ../master/database/_597.sql )  |  |  |  Easy | 
Original file line number Diff line number Diff line change 1+ -- 608. Tree Node
2+ -- Given a table tree, id is identifier of the tree node and p_id is its parent node's id.
3+ -- 
4+ -- +----+------+
5+ -- | id | p_id |
6+ -- +----+------+
7+ -- | 1  | null |
8+ -- | 2  | 1    |
9+ -- | 3  | 1    |
10+ -- | 4  | 2    |
11+ -- | 5  | 2    |
12+ -- +----+------+
13+ -- Each node in the tree can be one of three types:
14+ -- Leaf: if the node is a leaf node.
15+ -- Root: if the node is the root of the tree.
16+ -- Inner: If the node is neither a leaf node nor a root node.
17+ -- Write a query to print the node id and the type of the node. Sort your output by the node id. The result for the above sample is:
18+ -- +----+------+
19+ -- | id | Type |
20+ -- +----+------+
21+ -- | 1  | Root |
22+ -- | 2  | Inner|
23+ -- | 3  | Leaf |
24+ -- | 4  | Leaf |
25+ -- | 5  | Leaf |
26+ -- +----+------+
27+ -- Explanation
28+ -- 
29+ -- Node '1' is root node, because its parent node is NULL and it has child node '2' and '3'.
30+ -- Node '2' is inner node, because it has parent node '1' and child node '4' and '5'.
31+ -- Node '3', '4' and '5' is Leaf node, because they have parent node and they don't have child node.
32+ -- 
33+ -- And here is the image of the sample tree as below:
34+ -- 			  1
35+ -- 			/   \
36+ --                       2       3
37+ --                     /   \
38+ --                   4       5
39+ -- Note
40+ -- 
41+ -- If there is only one node on the tree, you only need to output its root attributes.
42+ 
43+ -- credit: https://leetcode.com/articles/tree-node/#approach-i-using-union-accepted
44+ select  id, ' Root' as  Type from  tree where  p_id is null 
45+ union 
46+ select  id, ' Leaf' as  Type from  tree where  id not in 
47+     (select distinct  p_id from  tree
48+         where  p_id is not null )
49+     and  p_id is not null 
50+ union 
51+ select  id, ' Inner' as  Type from  tree where  id in 
52+     (select distinct  p_id from  tree
53+         where  p_id is not null )
54+     and  p_id is not null 
55+ order by  id;
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments