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