Cerca nel forum, di liste se ne è parlato fino alla nausea.

Ah, nota che l'algoritmo che ti ho dato io ha due grossi difetti:
1) E' inefficiente ( O(n^2) )

2) Immagina che la palla A intersechi la palla B la quale interseca la palla C.
Al primo ciclo viene gestita la collisione A-B: come risultato, B viene rimossa.
Al secondo ciclo, la palla B non esiste: non viene rilevata nessuna collisione per la palla C, che continua ad esistere indisturbata (quando in effetti la collisione c'era).