这个递归循环我真的没看懂,老师能否详细讲解一下里面的执行流程
来源:4-1 结构体和方法

蹭你七时年
2021-01-13
写回答
1回答
-
albaficaw
2021-01-26
首先你要能画出这张图哈,这玩意画不出来,下面的遍历就白搭
(1)从root开始,先执行 root.left.tra...() ,可以看到 root.left 存在的,那么在执行 root.left.tra...(),其实这时候已经开始嵌套了, root.left,left不存在,所以退出这层回到上一层,执行 print root.left.value也就是 0
所以第一个字符串是 “0”
(2)执行root.right.tra...() ,一样嵌套到下一层,发现 自己的left不存在,所以打印自己,输出变成“0 2”,再嵌套自己的right不存在,退出这一层嵌套,到上一层,上一层也结束了,再回到上一层也就是root,输出变成“0 2 3”
(3)执行root.right 逻辑一致,想执行root.right.left 输出 4,然后输出自己 5 没有right.right 就退出嵌套
所以整个输出结果就是 "0 2 3 4 5"
022021-09-24
相似问题