LeetCode(算法)- 104. 二叉树的最大深度

简介: LeetCode(算法)- 104. 二叉树的最大深度

题目链接:点击打开链接

题目大意:

解题思路:

相关企业

  • 领英(LinkedIn)
  • 字节跳动
  • Facebook
  • 亚马逊(Amazon)
  • 谷歌(Google)
  • 微软(Microsoft)
  • 彭博(Bloomberg)
  • 苹果(Apple)

AC 代码

  • Java
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/// 解决方案(1)classSolution {
intres=0;
publicintmaxDepth(TreeNoderoot) {
dfs(root, 1);
returnres;
    }
voiddfs(TreeNodenode, intl) {
if (node==null) {
return;
        }
res=Math.max(res, l);
dfs(node.left, l+1);
dfs(node.right, l+1);
    }
}
// 解决方案(2)classSolution {
publicintmaxDepth(TreeNoderoot) {
if(root==null) return0;
returnMath.max(maxDepth(root.left), maxDepth(root.right)) +1;
    }
}
// 解决方案(3)classSolution {
publicintmaxDepth(TreeNoderoot) {
if(root==null) return0;
List<TreeNode>queue=newLinkedList<>() {{ add(root); }}, tmp;
intres=0;
while(!queue.isEmpty()) {
tmp=newLinkedList<>();
for(TreeNodenode : queue) {
if(node.left!=null) tmp.add(node.left);
if(node.right!=null) tmp.add(node.right);
            }
queue=tmp;
res++;
        }
returnres;
    }
}
  • C++
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/// 解决方案(1)classSolution {
public:
intmaxDepth(TreeNode*root) {
if(root==nullptr) return0;
returnmax(maxDepth(root->left), maxDepth(root->right)) +1;
    }
};
// 解决方案(2)classSolution {
public:
intmaxDepth(TreeNode*root) {
if(root==nullptr) return0;
vector<TreeNode*>que;
que.push_back(root);
intres=0;
while(!que.empty()) {
vector<TreeNode*>tmp;
for(TreeNode*node : que) {
if(node->left!=nullptr) tmp.push_back(node->left);
if(node->right!=nullptr) tmp.push_back(node->right);
            }
que=tmp;
res++;
        }
returnres;
    }
};
目录
相关文章
|
2月前
|
算法
测试工程师的技能升级:LeetCode算法挑战与职业成长
这篇文章通过作者亲身体验LeetCode算法题的过程,探讨了测试工程师学习算法的重要性,并强调了算法技能对于测试职业成长的必要性。
49 1
测试工程师的技能升级:LeetCode算法挑战与职业成长
|
2月前
|
存储 算法
二叉树进阶-学会层序遍历助你一次刷完leetcode10道题
文章深入探讨了二叉树的层序遍历方法,并展示了如何通过队列实现层序遍历的算法逻辑,同时指出掌握层序遍历技巧可以帮助解决LeetCode上的多道相关题目。
二叉树进阶-学会层序遍历助你一次刷完leetcode10道题
|
2月前
|
算法 Java
LeetCode第94题二叉树的中序遍历
文章介绍了LeetCode第94题"二叉树的中序遍历"的解法,使用递归实现了中序遍历的过程,遵循了"左根右"的遍历顺序,并提供了清晰的Java代码实现。
LeetCode第94题二叉树的中序遍历
|
2月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
39 6
|
2月前
|
存储 算法 Java
LeetCode经典算法题:打家劫舍java详解
LeetCode经典算法题:打家劫舍java详解
53 2
|
2月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
41 1
|
2月前
|
存储 算法 Java
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
40 1
|
2月前
|
算法
【初阶数据结构篇】二叉树算法题
二叉树是否对称,即左右子树是否对称.
|
2月前
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
64 0
|
2月前
|
算法 Java
LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零
LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零
33 0
下一篇
无影云桌面