Polar codes are the first provable capacity-achieving codes under low complexity sub-optimal successive cancellation (SC) decoding. We propose the folding operation to efficiently implement both maximum-likelihood (ML) and SC decoders. We show that there are $log N$ alternative foldings for the ML search tree for a code of length $N$ and that they can be applied successively as $kappa$ times. In general, a given polar code can be decoded by $frac{N}{2^kappa}$-dimensional different folded trees. Using the folding operation, we first show exact ML decoding for polar codes of length up to 256, then we show that the conventional binary SC decoder with $1+log N$ steps can be re-designed as a non-binary folded SC decoder with only $1+log frac{N}{2^kappa}$ steps.