So if I understand correctly, the "s" node has an nPtr that points to "sh" (because she is high frequency) and "sh" has an nPtr that points to "su". 

But then what if the user actually types "sh". When the algorithm traverses to "sh" it sees the same (now irrelevant) pointer to "su" doesn't it? I still don't understand.

Maybe a figure would make this clearer. 

Or an explanation of what the frequency field means for nodes that don't represent the ends of words.