File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change 4
4
=end
5
5
6
6
#Solution (Using BFS/Queue)
7
+ # Time Complexity: O(n) Space: O(n)
7
8
8
9
# Definition for a binary tree node.
9
10
# class TreeNode
@@ -35,3 +36,36 @@ def level_order(root)
35
36
end
36
37
val_list
37
38
end
39
+
40
+ # Solution (Brute Force)
41
+ # Time Complexity: O(n^2) Space: O(n)
42
+
43
+ def level_order ( root )
44
+ h = height ( root )
45
+ trav_list = [ ]
46
+ for i in 1 ..h
47
+ nodes = [ ]
48
+ level_order_nodes ( root , i , nodes )
49
+ trav_list . append ( nodes )
50
+ end
51
+ trav_list
52
+ end
53
+
54
+ def level_order_nodes ( root , level , nodes )
55
+ return nodes if root . nil?
56
+ if level == 1
57
+ nodes . append ( root . val )
58
+ elsif level >1
59
+ level_order_nodes ( root . left , level -1 , nodes )
60
+ level_order_nodes ( root . right , level -1 , nodes )
61
+ end
62
+ end
63
+
64
+
65
+
66
+ def height ( root )
67
+ return 0 if root . nil?
68
+ left_h = height ( root . left )
69
+ right_h = height ( root . right )
70
+ return 1 +[ left_h , right_h ] . max
71
+ end
You can’t perform that action at this time.
0 commit comments