the real problem is telling when it's impossible, e.g. in recurrent data structures, like linked lists and trees. that takes practice.