给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶节点的最长路径上的节点数。
案例:
给出二叉树 [3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7
返回最大深度为 3 。
详见:https://leetcode.com/problems/maximum-depth-of-binary-tree/description/

Java实现:

递归实现:

/**
* 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;
}
}

非递归实现:

/**
* 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;
}
LinkedList<TreeNode> que=new LinkedList<TreeNode>();
que.offer(root);
int node=1;
int level=0;
while(!que.isEmpty()){
root=que.poll();
--node;
if(root.left!=null){
que.offer(root.left);
}
if(root.right!=null){
que.offer(root.right);
}
if(node==0){
++level;
node=que.size();
}
}
return level;
}
}

最新文章

  1. Bubble Cup 8 finals G. Run for beer (575G)
  2. Python笔记总结week4
  3. 夺命雷公狗-----React---6--props多属性的传递
  4. C语言基础--进制
  5. DZ!NT论坛 3.6.711删除用户各种错解决方案
  6. Python读取文件内容的三种方式并比较
  7. HTML5 基础
  8. 乐视手机1S正式发售,乐视商城官网抽风遭网友吐槽
  9. Webx框架:Valve详细解释
  10. Objective-C马路成魔【12-分类和协议】
  11. HBase伪分布安装
  12. window.open a.href打开窗口referer的问题
  13. 使用html元素的getBoundingClientRect来获取dom元素的时时位置和大小
  14. C语言学习及应用笔记之五:C语言typedef关键字及其使用
  15. mysql数据库目录my.ini的内容
  16. Java关键字(六)——super
  17. MySQL DBA工作角色和职责介绍
  18. XA Transactions Restrictions on XA Transactions
  19. LinearLayout 线性布局
  20. 关于子元素的margin-top溢出和元素浮动对父元素高度影响解决方案

热门文章

  1. FindBugs规则整理
  2. 解决Spring MVC中文乱码
  3. 数据表示Numpy
  4. darknet源码学习
  5. [转]VC++中操作XML(MFC、SDK)
  6. zabbix snmp、jmx配置使用
  7. SQL编程题-----1
  8. keystone nova v2 python
  9. CreateEx
  10. 算法导论17:摊还分析学习笔记(KMP复杂度证明)