【算法题】二叉树的最大深度
二叉树的最大深度
https://www.nowcoder.com/practice/8a2b2bf6c19b4f23a9bdb9b233eefa73?tpId=196&tqId=37055&rp=1&sourceUrl=%2Fexam%2Foj%3FquestionJobId%3D10%26subTabName%3Donline_coding_page&difficulty=undefined&judgeStatus=undefined&tags=&title=
这题让计算二叉树的深度,如果节点为空,则深度为 0
,否则我们通过递归的方式分别计算左子树和右子树的深度,那么二叉树的最大深度就是取两个子树的最大深度加 1
,这个 1
就是当前节点贡献的深度,如下图所示:
public int maxDepth(TreeNode root) {
if (root == null)
return 0;
// 递归,取左右子树的最大深度加 1 。
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
public:
int maxDepth(TreeNode *root) {
if (root == nullptr)
return 0;
// 递归,取左右子树的最大深度加 1 。
return max(maxDepth(root->left), maxDepth(root->right)) + 1;
}
各大厂算法面试题已经整理好了,请看这里:《算法专栏》
#笔试#【面试精华】各大厂算法面试真题 文章被收录于专栏
为了应对春招和秋招找工作,我经过长时间的收集和整理了各大厂的算法面试题,所有的算法题我都已经做了实现,大家可以根据自己需要面试的大厂选择练习即可。适宜人群: 在校生、社招求职者及自学者。