moveTower(height-1,fromPole,withPole,toPole)
Move all discs but one from the initial pole to the in-between pole, using the third pole.
moveDisk(fromPole,toPole)
Move the last disc from initial Pole to final Pole. Now last disc is at its correct position and does not need to be moved.
moveTower(height-1,withPole,toPole,fromPole)
Move all discs from in-between Pole to final pole, using the first pole if required.