您的位置:首页 > 新闻 > 会展 > fotor懒设计在线设计_科技素材_竞价托管推广多少钱_网上广告宣传怎么做

fotor懒设计在线设计_科技素材_竞价托管推广多少钱_网上广告宣传怎么做

2024/10/9 6:20:18 来源:https://blog.csdn.net/qq_64076540/article/details/142651604  浏览:    关键词:fotor懒设计在线设计_科技素材_竞价托管推广多少钱_网上广告宣传怎么做
fotor懒设计在线设计_科技素材_竞价托管推广多少钱_网上广告宣传怎么做

1 题目描述

题目链接:二叉树的最大深度
在这里插入图片描述

2 解答思路

递归分为三步,接下来就按照这三步来思考问题

第一步:挖掘出相同的子问题  (关系到具体函数头的设计)
第二步:只关心具体子问题做了什么  (关系到具体函数体怎么写,是一个宏观的过程)
第三步:找到递归的出口,防止死递归  (关系到如何跳出递归)

2.1 相同的子问题(函数头设计)

相同的子问题:二叉树的最大深度:这棵树的左子树的深度和右子树的深度中的最大值 + 1

根据这句话,判断出函数头只需要传递一个参数,就是TreeNode* root

下面是leetcode的函数头:

    int maxDepth(TreeNode* root) {}

传入一个TreeNode* root的参数,返回二叉树的最大深度。

因此,我们可以直接使用leetcode给的函数头,不需要再自己创建。

2.2 具体的子问题做了什么(函数体的实现)

具体的子问题:找左子树的深度和右子树的深度的最大值 + 1

这里为什么要+1?

因为递归调用找到的子树的最大深度其实没有算上自己。因为只算上了子树的最大深度,所以要+1,算上自己的深度再返回。

递归的出口?

当节点为空的时候

代码实现:

    int maxDepth(TreeNode* root) {if (root == nullptr)return 0;//二叉树的最大深度:这棵树的左子树的深度和右子树的深度中的最大值 + 1return max(maxDepth(root->left), maxDepth(root->right)) + 1;}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com