I am trying to search a BST for all of the nodes that contain a specific value, however when I call the search function it only returns the first match ( My test data def. has two nodes that should be returned). How do I adjust my code to get all of the values that match my criteria?

Here is my BST Search Function:

```
...
    private String search(String target, Node ptr)
    {
        ptr = root;
        if (ptr == null)
        {
            return null;
        }
    int compare = target.CompareTo(ptr.riskLevel.ToString());
        if (compare == 0)
        {
            return "Audit ID: " + ptr.auditID  + 
                "\n" + "Risk Level: " + ptr.riskLevel + 
                "\n" + "Scanner Found In: " + ptr.scanner + 
                "\n" + "Device Affected: " + ptr.boxName + 
                "\n" + "Description: " + ptr.description + "\n";
        }
        if (compare < 0)
        {
            return search(target, ptr.left);
        }
            return search(target, ptr.right);
        }
    public virtual String search(String target)
    {
        return search(target, root);
    }

```

This is my main(); where I call the search method:

```
while (true)
{
    ...
    Console.Writeline(bst.search("I"));
}

```

In other words, I'm trying to return all `Nodes` from `bst` that have a `riskLevel` of `"I"`.

Here is my output (there should be two):

![enter image description here](https://i.stack.imgur.com/wfzAz.jpg)

My `BST` contains the following methods:

* insert()
* search()
* displayAll()
* coutnNodes()
* save()

I'm happy to post the entire `BST` class if needed.