递归思想
递归可以把一个复杂问题转化为一个与原问题相似的规模较小的问题,通过自己调用自己,找到最终解决这个问题的条件,达到判断条件时返回。
通过分形树理解递归
Python中的 turtle画图很方便,画分形树的思想也可以用到二叉树的遍历中,我们先来看这样一颗分形树
我们可以发现树的分支都是一样的,具有相同的结构
先考虑简单的最底层的两个分支,我们可以让turtle一开始向上走一段初始距离
def draw_tree(size): if size > SIZE_TREE: # 如果size在范围内,那么可以画树 # 右边 turtle.forward(size) # 先向前走size turtle.right(20) # 右转20° draw_tree(size / 1.5) # 再继续右转 长度减半 走不动时往左边转40° # 左边 turtle.left(40) # 左转40° draw_tree(size / 1.5) # 画左边的树 长度减半 走不动时 右转20回到原来角度 # 回到