BinaryTree to Map

Geoffrey Challen // 2021.4.0

Create a public class BinaryTreeToMap that provides a single static method toMap. toMap accepts a BinaryTree<?> and returns a Map<Object, Integer> mapping the values in the tree to the count of the times that the value appears.

Our suggestion is to have toMap create the map and then call a private recursive helper method to populate it. If the tree passed to toMap is null you should throw an IllegalArgumentException. You will need to import cs125.trees.BinaryTree, as well as Map and a Map implementation (probably HashMap) from java.util. We've provided some code to get you started.

For reference, cs125.trees.BinaryTree has the following public properties:

import cs125.trees.BinaryTree;
import java.util.Map;
public class BinaryTreeToMap {
public static Map<Object, Integer> toMap(BinaryTree<?> tree) {
// Check for null
// Create your map
// Call the helper method to populate the map
// Return the map
return null;
// Helper method
private static void toMap(BinaryTree<?> tree, Map<Object, Integer> values) {}