The algorithm is re-run, but is usually implemented using a dynamic programming approach to avoid completely recalculating every seam from scratch.
For illustrative purposes, I didn't optimize storing the cost data across frames, but that's something I could do.