Skip to content

Instantly share code, notes, and snippets.

@Fluxx
Created October 22, 2011 03:17
Show Gist options
  • Select an option

  • Save Fluxx/1305541 to your computer and use it in GitHub Desktop.

Select an option

Save Fluxx/1305541 to your computer and use it in GitHub Desktop.
def traverse(node, &block)
return unless node
yield node
traverse(node.left, &block) if node.left
traverse(node.right, &block) if node.right
end
def identical?(tree_1, tree_2)
num_nodes = 0
seen_keys = Hash.new(0)
travese(tree_1) do |node|
num_nodes += 1
seen_keys[node.value] += 1
end
traverse(tree_2) do |node|
num_nodes =- 1
seen_keys[node.value] =- 1
seen_keys.delete(node.value) if seen_keys[node.value] == 0
end
num_nodes == 0 || seen_keys.empty?
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment