递归返回值

        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返回的值你并没有逐层返回来不是空才怪了呢!

posted @ 2013-11-26 20:28  古来征战几人回  阅读(265)  评论(0编辑  收藏  举报