这个递归循环我真的没看懂,老师能否详细讲解一下里面的执行流程

来源:4-1 结构体和方法

蹭你七时年

2021-01-13

图片描述

写回答

1回答

albaficaw

2021-01-26

//img.mukewang.com/szimg/600fd31209c95ecf03700351.jpg



首先你要能画出这张图哈,这玩意画不出来,下面的遍历就白搭

(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"

0
2
life纵横宇内
回复
weixin_精慕门4463214
老哥纠正的不错,赞!
2021-09-24
共2条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程