- 1,101

- 3

**1. Homework Statement**

Which is true about the method

**find**?

//Return TreeNode with target value, or null if target not found

public static TreeNode find(TreeNode root, Comparable target)

{

if(root == null)

return null;

else if(target.compareTo(root.getValue()) == 0)

return root;

else if(target.compareTo(root.getValue()) < 0)

return find(root.getLeft(), target);

else

return find(root.getRight(), target);

}

A) Method find will never work as intended

B) Method find will always work as intended

C) Method find will only work as intended if target is not in the tree.

D) Method find will always work as intended if the tree is a binary search tree

E) Method find will only work as intended if the tree is a binary search tree and target occurs no more than once in the tree

**2. Homework Equations**

**3. The Attempt at a Solution**

I chose E. Since it uses methods getLeft() and getRight(), it appears to work only for binary search trees. Also, it target occured twice, it could return one of two pointers right?