Efficient tree methods for option pricing