Diamond is covalently bonded and has a giant covalent structure. Covalent bonds require lots of energy to break as they are strong so diamond has the highest melting point. Iodine has only weak intermolecular forces (instantaneous dipole-dipole interactions or London forces) whereas hydrogen fluoride has a permanent dipole and can hydrogen bond (as well as having London forces). Hydrogen bonding and permanent dipoles are stronger than Londer forces so more energy is needed to overcome them, therefore hydrogen fluoride has a higher melting point than iodine. Diamond has the highest melting point as bonds have to be broken whereas iodine and hydrogen fluoride are simple covalent molecules so they are held together by the intermolecular forces.