Can a node of Radix tree which represents a valid key have one child?
I've used patricia tries extensively, but haven't implemented a radix=2 patricia tree. (I generally used radix=256.)


  So my question is that whether "no parent with on child" rule is coined into the definition of radix tree


Not that I'm aware of. That sounds like an detail of a particular implementation.

Any time you have a valid key, you have a node. Any time you have a longer key that starts with that key, you have a child. So there will be lots of cases (on the order of some log function) of parents with one child, but those parents that have one child will imply a valid key in most implementations.

In your example, "smile" and "smiled" are two nodes, and "smiled" is a child of "smile". Both are valid keys. The "smile" node would have one child, "smiled".

Note that if a parent has only one child (e.g. after a node removal), and the parent does not represent a valid key, then the parent can combine itself with that one child. (That is an implementation choice.) So in your example, if we remove the key "smile", then we can either mark that node as "not holding a key any longer", or we can get rid of it, sliding the "smile" node up the tree.