递归返回值

        1
       / 
      2   3
     /   /
            4   5 6
比如找3(在这里姑且认为结点序号和data值相同):

把根1传进来,1非空,3!=1
把1的左结点2传进来,2非空,2!=3

把2的左结点4传进来,4非空,4!=3

把4的左结点0传进来,0空,返回上一层4
把4的右结点0传进来,0空,返回上一层4
在这里4的左右子树遍历完毕,此层调用结束,返回上一层2

把2的右结点5传进来,5非空,5!=3
把5的左结点0传进来,0空,返回上一层5
把5的右结点0传进来,0空,返回上一层5
在这里5的左右子树遍历完毕,此层调用结束,返回上一层2
在这里2的左右子树遍历完毕,此层调用结束,返回上一层1

把1的右结点3传进来,3非空 3==3 返回r

你的问题之所以返回都是空,因为返回的值没有逐层返回来。每次调用FindBTS返回的值你并没有逐层返回来不是空才怪了呢!

【签名→→→】【****知其然知其所以然****】 工具只能帮助我们解决我们认识到的问题,解决不了我们都没理解的问题。 不能再把一切扔给框架、容器、工具! 首先理解你的业务逻辑,理解你要实现的功能, 然后搞清楚框架、容器、工具会帮助我们做什么。 只有理解了自己的业务逻辑,理解了自己的代码,理解了自己要用到的第三方代码, 才能真正完美地实现我们需要的功能!
原文地址:https://www.cnblogs.com/yaowukonga/p/3444063.html