Skip to content

Commit e1bdb58

Browse files
committed
level order traversal brute force
1 parent 31dd141 commit e1bdb58

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

leetcode/binary_tree_level_order_traversal.rb

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
=end
55

66
#Solution (Using BFS/Queue)
7+
# Time Complexity: O(n) Space: O(n)
78

89
# Definition for a binary tree node.
910
# class TreeNode
@@ -35,3 +36,36 @@ def level_order(root)
3536
end
3637
val_list
3738
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

0 commit comments

Comments
 (0)