I do this trip daily, and whilst its a few changes, I find it the fastest and most reliable as the bus to Vauxhall can vary quite alot in the mornings. Train from Denmark Hill to Battersea Park, walk to Queenstown Road (2 mins) and then train to Putney. It does depend what time you need to arrive and the train connections.