第一次递归调用,Pt没有指向B节点吗(画横线的语句)
追答第一次递归当然是从根节点A开始递归
追问哦,是输出A数据域以后
第一条判空语句if里面递归
请问此时不是把B的地址发给了pt吗
追答你不要管A的左子树是怎么递归的,你就把它想象成一条语句,作用就是输出A的整个左子树,它执行完后接下来开始执行递归遍历右子树的语句。
追问不清楚为什么能够遍历完左右子树的
追答先递归遍历左子树,完成后再递归遍历右子树,整个递归过程抽象起来不就是上面的两条语句吗?
追问是的,但是为什么能够执行,拆分看为什么不对啊
追答为什么不能够执行?你凭什么觉得它不能够执行?
追问我对递归执行过程不明白
追答再好好理解下什么是递归吧。
追问是这个递归过程不明白为,执行过红线的不是pt指向了b吗
追答那是递归子函数里的pt指向B,关当前函数的pt什么事呢?当前函数的pt永远指向A
追问但它不是相当于形参传给了pt了吗
实参
传给的是子函数里的形参pt,关当前函数里的形参pt什么事??这两者根本就是完全独立的两个变量,分属它们各自所在函数的栈空间
追问你所说的当前函数是哪一个函数啊
追答当前执行的父函数,该函数的pt指向A,由该函数递归调用自身去分别遍历左右子树,被调用的函数成为该函数的子函数