zoukankan      html  css  js  c++  java
  • 【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;
        }
    };


  • 相关阅读:
    动态库 DLL 封装二:dll封装方法
    动态库 DLL 封装一:dll分类
    C++读取配置文件ini
    WCHAR 字符串拼接
    关于web桌面应用的集成解决方案
    CSS Grid网格布局(转)
    使用 antd 的 form 组件来自定义提交的数据格式
    syslogd日志的一些作用
    我的三年感悟——避免无尽的自我内耗
    《被讨厌的勇气》读后感
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3053799.html
Copyright © 2011-2022 走看看