老师请问递归的时候返回值类型怎么确定?
# 具体遇到的问题
警有在尝试去理解老师说的“注意递归的宏观语义”,但还是经常对递归犯迷糊,比如现在最想解决的问题是递归的返回值类型。现在我的思路是这样:
1尽量在递归体中使用void类型 以及外部记录量 这样可以极大降低难度
2 但是void只适用于遍历记录的情况 遇到修改的时候无能为力 比如二叉树中的辅助递归函数helper就不太知道使用什么返回类型 不知道是TreeNode或者Boolean 还是很迷糊
14
收起
正在回答 回答被采纳积分+1
1回答
liuyubobobo
2020-12-06 21:47:40
不是先确定递归的返回值,在确定递归的语义;
而是先确定递归的语义,再确定递归的返回追;
比如你的递归的语义是:求这个节点为根节点的二分搜索树的高度,那么返回值就应该是 int;
比如你递归的语义是:求进行某个操作以后(比如删除,添加,更新),新的二分搜索树的根节点,那么返回值就是一个 Node
先想明白怎样递归地解决问题(问题的递归性质在哪里),在具体地想基于这个递归性质,我们的递归函数的语义是怎样的,最后,细化我们的递归函数的参数是什么?返回值是什么?
继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星