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 }

  • 相关阅读:
    Bzoj1072--Scoi2007排列perm
    Bzoj1041--Haoi2008圆上的整点
    Bzoj3932--Cqoi2015任务查询系统
    HDU 1024 Max Sum Plus Plus(DP)
    HDU 1029 Ignatius and the Princess IV
    【noip模拟题】数列
    Hello World
    vue-router 进阶
    vue2.0 源码解读(二)
    vue2.0 源码解读(一)
  • 原文地址:https://www.cnblogs.com/springfor/p/3879619.html
Copyright © 2011-2022 走看看