104.二叉树的最大深度。2星
程序员文章站
2024-02-28 23:46:10
...
方法一:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int maxDepth(TreeNode root) {
if(root==null){return 0;}
Queue<TreeNode> queue = new LinkedList<TreeNode>();
int maxceng=0;
queue.offer(root);
queue.offer(null);
//将一层的节点全部入栈后,加入一个空节点作为标志位
while(!queue.isEmpty()){
TreeNode st2 = queue.poll();
if(st2==null){
maxceng++;
if(!queue.isEmpty()) queue.offer(null);
//防止在遍历完成后多次加入空节点造成死循环
}
else {
if (st2.left!=null){queue.offer(st2.left);}
if (st2.right!=null){queue.offer(st2.right);}
}
}
return maxceng;
}
}
方法二:
递归前序遍历:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
int left = maxDepth(root.left);
int right = maxDepth(root.right);
return left > right ? left + 1 : right + 1;
}
}
下一篇: tomcat的启动流程
推荐阅读
-
104.二叉树的最大深度。2星
-
【LeetCode】104. Maximum Depth of Binary Tree 二叉树的深度 DFS BFS 递归方式 迭代方式 JAVA
-
21天刷题计划之17.1—maximum-depth-of-binary-tree(二叉树的最大深度)(Java语言描述)
-
二叉树的最小、最大深度以及平衡二叉树
-
【LeetCode-Hot100】104. 二叉树的最大深度
-
Leecode 刷题记录 104 二叉树的最大深度
-
【leetcode 简单】第二十三题 二叉树的最大深度
-
LeetCode - 二叉树的最大深度
-
C++实现LeetCode(104.二叉树的最大深度)
-
Leetcode - 二叉树的最大深度