(1)Base case 和recursive case 返回相同的类型 or 有相同的side effect(eg. Mutate a tree) (2)画好图(比如一个tree), then从base case 和它的上一层思考问题,如果你的code能从最底层和倒数第二层运行成功,那么依据递归规则剩下的自然成功 (3)写好一个loop, then change it to recursion