Per questi motivi, il Tribunale federale delle assicurazioni
p r o n u n c i a :
I. Il ricorso di diritto amministrativo è respinto.
II. Non si percepiscono spese giudiziarie, né si assegnano
indennità di parte.
III. La presente sentenza sarà intimata alle parti, al
Tribunale cantonale delle assicurazioni, Lugano, e
all'Ufficio federale delle assicurazioni sociali.