Hmmm…misses some pretty important bits. This description focuses on the property that the root hash acts as a fingerprint of the entire dataset, but a simple “flat” hash over [A..H] would provide the same property.
What’s neat about a Merkle tree are the other things it allows you to do much more efficiently – like recomputing the root hash (and any intermediates) when a small change is made, or quickly zeroing in on the differing chunks given two not-quite-equal datasets.
so what kind of hash should be used for a merkle tree?
It doesn’t require a specific hash function. Usually, it’s a cryptographic hash function like SHA-2 but you can choose another function just fine.