CS AP
Data Structure Exercise name____________________________
Binary Trees -- Solution
1. A binary tree is called a full tree if all its levels are completely filled with nodes. A full tree with h levels has 2h ‑ 1 nodes. Write a method
public int fullTreeDepth(TreeNode root)
public int fullTreeDepth(TreeNode root)
{
if (root == null)
return 0;
int depth = fullTreeDepth(root.getLeft());
if (depth < 0)
return -1;
if (fullTreeDepth(root.getRight()) != depth)
return -1;
return depth + 1;
}
2. Write a method
public TreeNode removeRightmostLeaf(TreeNode root)
public TreeNode removeRightmostLeaf(TreeNode root)
{
if (root.getRight() != null)
root.setRight(removeRightmostLeaf(root.getRight()));
else if (root.getLeft() != null)
root.setLeft(removeRightmostLeaf(root.getLeft()));
else
root = null;
return root;
}
3. Write a method (on the back)
public TreeMap combine(Map map1, Map map2)
public TreeMap combine(Map map1, Map map2)
{
TreeMap resultMap = new TreeMap();
Iterator iter;
Object key;
iter = map1.keySet().iterator();
while (iter.hasNext())
{
key = iter.next();
resultMap.put(key, map1.get(key));
}
iter = map2.keySet().iterator();
while (iter.hasNext())
{
key = iter.next();
if (!resultMap.containsKey(key))
resultMap.put(key, map2.get(key));
}
return resultMap;
}