Commit bfe18a5

mo <mokha@cisco.com>
2017-08-05 16:43:35
add level to each node.
1 parent a95f896
Changed files (1)
spec
spec/binary_trees/is_tree_symetric_spec.rb
@@ -133,17 +133,22 @@ DOC
   end
 
 <<-DOC
-    1
-   / \
-  2   3
- /   /
-3    2
+        -191
+        /  \
+      374   374
+     /        \
+    361       361
+   /  \       /  \
+-771  159   159  -771
+
 DOC
   def symmetric?(tree)
-    level, visited, queue, values_in_level = 0, 0, [tree], []
+    tree.print
+    level, visited, queue, values_in_level = 0, 0, [{ node: tree, level: 0 }], []
 
     until queue.empty?
-      node = queue.shift
+      item = queue.shift
+      node = item[:node]
       values_in_level.push(node&.value)
       visited += 1
       max_per_level = (2**level)
@@ -156,8 +161,8 @@ DOC
       end
 
       unless leaf?(node)
-        queue.push(node.left)
-        queue.push(node.right)
+        queue.push({ node: node.left, level: item[:level] + 1 })
+        queue.push({ node: node.right, level: item[:level] + 1 })
       end
     end