• 【leetcode】Minimum Depth of Binary Tree


    Question : 

    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.

    Anwser 1 :   

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int minDepth(TreeNode *root) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            if (root == NULL) return 0;
            
            int left = minDepth(root->left) + 1;
            int right = minDepth(root->right) + 1;
            
            // leaf
            if (left == 1 || right == 1)
                return left > right ? left : right;
                
            return left < right ? left : right;
        }
    };


    Anwser 2 :    

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int minDepth(TreeNode *root) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            if (root == NULL) return 0;
            
            int depth = 1;
            queue <TreeNode *> current;
            queue <TreeNode *> next;
            current.push(root);
        
            while (!current.empty())
            {
                while (!current.empty())
                {
                    TreeNode *n = current.front();
                    current.pop();
                    if (n->left==NULL && n->right == NULL) return depth;
                    if (n->left) next.push(n->left);
                    if (n->right) next.push(n->right);
                }
                
                queue <TreeNode *> t;   // init queue
                current = next;
                next = t;
                depth += 1;
            }
            return depth;
        }
    };


  • 相关阅读:
    ID3、C4.5、CART、RandomForest的原理
    C4.5,CART,randomforest的实践
    logistic原理与实践
    knn原理与实践
    Naive Bayes理论与实践
    Apriori原理与实践
    数据科学家应了解的内容
    数据分析常见的七种思路
    响应式网站宽度分隔
    HTML5的 input:file上传类型控制
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3053799.html
Copyright © 2020-2023  润新知