zoukankan      html  css  js  c++  java
  • Maximum Depth of Binary Tree leetcode java

    题目

    Given a binary tree, find its maximum depth.

    The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

    题解

    递归解法:

    1     public int maxDepth(TreeNode root) {
    2         if(root==null)
    3             return 0;
    4         int leftmax = maxDepth(root.left);
    5         int rightmax = maxDepth(root.right);
    6         return Math.max(leftmax, rightmax)+1;
    7     }

     非递归解法,参考codeganker(http://codeganker.blogspot.com/2014/02/maximum-depth-of-binary-tree-leetcode.html)的:

     1 public int maxDepth(TreeNode root) {
     2     if(root == null)
     3         return 0;
     4     
     5     int depth = 0;
     6     LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
     7     queue.add(root);
     8     int curNum = 1; //num of nodes left in current level
     9     int nextNum = 0; //num of nodes in next level
    10     while(!queue.isEmpty()){
    11         TreeNode n = queue.poll();
    12         curNum--;
    13         if(n.left!=null){
    14             queue.add(n.left);
    15             nextNum++;
    16         }
    17         if(n.right!=null){
    18             queue.add(n.right);
    19             nextNum++;
    20         }
    21         if(curNum == 0){
    22             curNum = nextNum;
    23             nextNum = 0;
    24             depth++;
    25         }
    26     }
    27     return depth;
    28 }

  • 相关阅读:
    CenOS下搭建PPTP服务
    Nginx做反向代理总是被系统kill
    python排序算法
    linux系统中rsync+inotify实现服务器之间文件实时同步
    HDU
    BZOJ1237: [SCOI2008]配对
    BZOJ2243: [SDOI2011]染色
    BZOJ3192: [JLOI2013]删除物品
    点分治小结
    AtCoder Beginner Contest 124 解题报告
  • 原文地址:https://www.cnblogs.com/springfor/p/3879619.html
Copyright © 2011-2022 走看看