回溯总结
递归原则
递归其实本质是对某种数据结构的遍历。我们经常看到,一次递归调用,两次递归调用,多次递归调用。其实这些都是有特定的场景的。
首先是单次递归调用,场景其实是一维数据结构的遍历,比如遍历数组、链表等;
其次是二次递归调用,场景便是对二叉树的遍历;
而多次递归调用,这种情况我们一般能看到会在一个for循环体内进行递归调用,这种其实就是遍历多叉树或者图的场景啦!
回溯本质
结合代码随想录的总结,就是for循环是遍历树的宽度,而递归是遍历树的深度。其实就是先走深度,再回去走宽度。也就是对多叉树的遍历,所以才看到递归代码有for循环。