Qin scored 541.75 to take silver ahead of compatriot and defending Olympic champion He, who grabbed bronze with a total of 524.15.
'I just can't believe it as of now. I have done it finally,' the Russian said.
Zakharov added: 'I came second in the semis in the morning but I promised myself that second place was simply not good enough.
'The last dive was my grand finale. I thank everyone here who has supported me in my ups and downs.'