Back tracking is the common approach to solve problems about combinations, subsets, permutations or all possible solutions. When asked optimize result or max/min values, we should consider dynamic programming approach first as it usually has better time complexity. The time complexity of back tracking problem are various. For example, Hamiltonian cycle: O(N!), WordBreak: O(2^N) and NQueens: O(N!).
The most important thing for solving linked list problems is to figure out how pointers move during addition, insertion, deletion and reverse. Make sure the solution covered all possible cases before start coding.