网站的建设方式,什么是网络营销本质是什么,郑州seo外包费用,重庆装饰公司文章目录1. 题目信息2. 解题2.1 递归法2.2 按层遍历1. 题目信息
给定一个二叉树#xff0c;找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例#xff1a;
给定二叉树 [3,9,20,null,null,15,7]找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例
给定二叉树 [3,9,20,null,null,15,7]3/ \9 20/ \15 7
返回它的最大深度 3 。来源力扣LeetCode 链接https://leetcode-cn.com/problems/maximum-depth-of-binary-tree 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
《剑指Offer》同题面试题55 - I. 二叉树的深度
可以参考的博客二叉树。
2.1 递归法 class Solution {
public:int maxDepth(TreeNode* root) {int maxcount 0;if(root){calcTreeDepth(root, 0, maxcount);}return maxcount;}void calcTreeDepth(TreeNode* root, int height, int maxcount){if(root){height;if(height maxcount)maxcount height;if(root-left)calcTreeDepth(root-left, height, maxcount);if(root-right)calcTreeDepth(root-right, height, maxcount);}}
};class Solution {
public:int maxDepth(TreeNode* root) {if(!root)return 0;return 1max(maxDepth(root-left), maxDepth(root-right));}
};2.2 按层遍历 class Solution {
public:int maxDepth(TreeNode* root) {if(root NULL)return 0;queueTreeNode* q;q.push(root);int maxcount 0, i, n;while(!q.empty()){maxcount;n q.size();for(i 0; i n; i){if(q.front()-left)q.push(q.front()-left);if(q.front()-right)q.push(q.front()-right);q.pop();}}return maxcount;}
};