zoukankan      html  css  js  c++  java
  • LeetCode 111. Minimum Depth of Binary Tree

    原题链接在这里:https://leetcode.com/problems/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.

    题解:

    Maximum Depth of Binary Tree相似。

    不同是多了判断叶子节点,若是给出[1,2]这种情况,返回值应该是2而不是1, 即使root的右节点为空,但根据定义:The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. 此时root.left不为null, 所以root不能被认为是leaf. 因此加了if(root.left == null) return right+1, 这里注意加一。

    Time Complexity: O(n)最坏的情况每个节点走了一遍. Space: O(logn), recursion stack 是 tree 的高度是logn.

    AC 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         }
    15         
    16         int left = minDepth(root.left);
    17         int right = minDepth(root.right);
    18         
    19         if(root.left == null){
    20             return right+1;    
    21         }
    22         if(root.right == null){
    23             return left+1;
    24         }
    25         
    26         return Math.min(left, right)+1;
    27     }
    28 }
  • 相关阅读:
    隔离级别
    分析Hello2代码
    正则表达式
    Filter and servlet
    部署描述符
    Annotation
    LDAP and Implementation
    Restful levels and Hateoas
    servlet injection analysis
    隔离级别
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/4824992.html
Copyright © 2011-2022 走看看