I was wondering if your change before (which didn't fill in with empty lists) was likely more memory-efficient, and no slower.  Why did you end up changing it?