How you charge a battery of cells in series is determined by how they behave with overcharge. If they can tolerate overcharge, then it's easy. Limit the over-charging conditions to the tolerated range, and the battery will self balance, as fully charged cells wait for the others to catch up. If they fail with overcharge, then you have to take steps to control unbalance.
Nickel chemistries. Terminal voltage is below that of water dissociation, so excess charge current turns into heat. The ones to reach full charge first just get hot, and the battery self-balances as the other cells finish charging. Limit the current to control the temperature rise, and you're OK.
Wet cell lead. Terminal voltage is above that of water dissociation, so excess charge current turns into hydrogen and oxygen venting. The ones to reach full charge first just vent, and the battery self-balances. Top up the low cells before they get too low, and you're OK. Fail to top them up, you eventually damage the battery.
Sealed lead. You can't top up the cells, so the cells have a modified chemistry and construction so that at low enough overcharge rates, the evolved oxygen has time to diffuse to the other electrode and recombine with the hydrogen back to water, generating heat. Limit the charge voltage to limit the overcharge current, and you're OK. Allow high current to pass when overcharging, gases are generated faster than they can recombine, you damage the battery.
Lithium. You cannot overcharge the cells without causing damage, period. Every cell in a battery has to be monitored for terminal voltage, and charging stopped on that cell while the others finish their charge.