zoukankan      html  css  js  c++  java
  • LeetCode OJ:Minimum Depth of Binary Tree(二叉树的最小深度)

    Given a binary tree, find its minimum depth.

    The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

    求二叉树的最小深度,额,简单的递归而已,代码如下:

     1 class Solution {
     2 public:
     3     int minDepth(TreeNode* root) {
     4         if(root = NULL) return 0;
     5         int leftDep = minDepth(root->left);
     6         int rightDep = minDepth(root->right);
     7         if(leftDep == 0 && rightDep == 0) return 1;//叶子节点
     8         if(leftDep == 0) leftDep = INT_MAX;
     9         if(rightDep == 0) rightDep = INT_MAX;//中间节点
    10         return min(leftDep, rightDep) + 1; 
    11     }
    12 };

    java 版本的代码一样,与上面相同,代码如下所示:

     1 /**
     2  * Definition for a binary tree node.
     3  * public class TreeNode {
     4  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 public class Solution {
    11     public int minDepth(TreeNode root) {
    12         if(root == null) 
    13             return 0;
    14         int leftDep = minDepth(root.left);
    15         int rightDep = minDepth(root.right);
    16         if(leftDep == 0 && rightDep == 0)
    17             return 1; //到达这里表明的是叶子节点
    18         if(leftDep == 0) leftDep = Integer.MAX_VALUE;
    19         if(rightDep == 0) rightDep = Integer.MAX_VALUE;
    20         return Math.min(leftDep, rightDep) + 1;       
    21     }
    22 }
  • 相关阅读:
    install sklearn-crfsuite on mac
    排序算法之选择排序
    排序算法之冒泡排序
    Python中__init__与self的解释
    Python中 if __name__ == "__main__"解释
    Python活力练习Day25
    Python活力练习Day24
    Python活力练习Day23
    动态规划之编辑距离
    Python活力练习Day22
  • 原文地址:https://www.cnblogs.com/-wang-cheng/p/4892902.html
Copyright © 2011-2022 走看看