I have the following Radix trie structures:

```
struct Node {
node_map: HashMap<char, Node>,
value: Option<i32>,
}
struct RadixTrie {
root: Node,
}
```

I am attempting to implement the delete function: `delete(&mut self, key: &String) -> Option<i32>`

However, I can't seem to arrive at the correct recursion. I know that I have to travel to the leaf node and delete backward. So if I have a key "Foobar", I have to traverse to "r" node and delete backward, and return the `value`

at "r"

Could you help?