老师请问递归的时候返回值类型怎么确定?

来源:1-1 为什么要研究树结构

purecce

2020-12-06 20:50:21

# 具体遇到的问题
警有在尝试去理解老师说的“注意递归的宏观语义”,但还是经常对递归犯迷糊,比如现在最想解决的问题是递归的返回值类型。现在我的思路是这样:

1尽量在递归体中使用void类型 以及外部记录量 这样可以极大降低难度

2 但是void只适用于遍历记录的情况 遇到修改的时候无能为力 比如二叉树中的辅助递归函数helper就不太知道使用什么返回类型 不知道是TreeNode或者Boolean 还是很迷糊


写回答

1回答

liuyubobobo

2020-12-06

不是先确定递归的返回值,在确定递归的语义;


而是先确定递归的语义,再确定递归的返回追;


比如你的递归的语义是:求这个节点为根节点的二分搜索树的高度,那么返回值就应该是 int;


比如你递归的语义是:求进行某个操作以后(比如删除,添加,更新),新的二分搜索树的根节点,那么返回值就是一个 Node


先想明白怎样递归地解决问题(问题的递归性质在哪里),在具体地想基于这个递归性质,我们的递归函数的语义是怎样的,最后,细化我们的递归函数的参数是什么?返回值是什么?


继续加油!:)

0

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2603 学习 · 1086 问题

查看课程