The other option is to copy a portion of the last note and paste it into the gap using cross-fades at the beginning and end. This can sometimes work better on larger gaps than the time-stretch, but also don't be afraid to use a combination of both!
When identifying timing problems it's often best to look at your audio from a bird's eye view first and try to identify any overall patterns. If in general a performance is late but there are occasional notes within that that are early you'll save a lot of time by shifting the region as a whole to correct the overall lateness and then zooming in to focus on just the early notes rather than working through on a note-by-note basis.
Another important point to note is that when editing any sound-source which has been captured with multiple mics (e.g. drum kit) we need to always make timing adjustments to the tracks as a group to retain phase coherence. Moving the position of part of one track in isolation (e.g. the snare) would push the audio out of line with the spill of that part in other tracks (e.g. the overheads).
Ok, so having learnt the manual way, lets see how the computer can do some of the hard work for us! With a bit of a helping hand from us something like the Audio Quantize Engine in Logic can do all that splicing, shifting and stretching in a couple of seconds. Much like MIDI Quantizing, Audio Quantizing is all about moving note events to the nearest bar/beat/division except that it has to guess where the start of each note is and this is where it needs help from us. By adjusting various parameters (see below) and manually removing false-positives we can help Logic identify each note in an audio region and after selecting a suitable quantize value we just hit 'Process' and let Logic do the rest. Typically the more percussive the instrument the better this will work and in these cases automatic timing correction can be a real time-saver.