According to wikipedia,
Backtracking is general algorithm for finding all (or some) solutions to some computational problems, notably constraint satisfaction problems, that incrementally builds candidates to the solutions, and abandons a candidate (backtracks) as soon as it determines that the candidate cannot possibly be completed to a valid solution.
I have compared backtracking to DFS in a previous post, so here I’ll just focus on the classic problems solved by backtracking.