• 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 }

  • 相关阅读:
    Xilinx SelectIO资源的使用总结
    Altera usbblaster驱动无法安装的解决办法
    Xilinx FPGA的约束设计和时序分析总结
    OpenMANIPULATORX基本操作
    OpenMANIPULATORX ROS包安装 (Melodic)
    .xacro文件
    open_manipulator OpenCR代码解读
    OpenMANIPULATORX GUI
    ROS建模 urdf
    多机器人Gazebo仿真
  • 原文地址:https://www.cnblogs.com/springfor/p/3879619.html
Copyright © 2020-2023  润新知