The Merkle tree isn't included in the download data. Just the root hash is included in the block header. The client has to reconstruct the tree in order to verify the root hash. It does this by going through the transaction list as it appears in the block data. Each transaction hash is a node at the top of the tree. So, if you have 6 transactions, you have 6 nodes (the last transaction hash is repeated if you have an odd number of nodes). Then the next level of the tree is computed where each node is formed by hashing the two nodes above it (again, the last node is duplicated if you have an odd number). This process continues until you have just one node - the root node. It is checked against the root in the header to make sure it matches. If it does, you know the transactions have not been modified. Note that the block hash is only over the block header and does not include the transactions themselves.
Here is an example with 6 transactions (Tx1-Tx6)
Tx1 Tx2 Tx3 Tx4 Tx5 Tx6
\ / \ / \ /
L2A - - L2B L2C - - L2C (repeated)
\ / \ /
L3A --- ---- L3B
\ /
Root
d5
is co-branched withd6
and containsd1 concat d2
before trying every possible combination. Thank you very much in advance! – Jan 05 '14 at 22:41