LeetCode : Minimum Depth of Binary Tree

来源:互联网 发布:2016普通网络写手收入 编辑:程序博客网 时间:2024/05/01 15:42

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.

比最大高度要复杂一些。不过也还好,练手了。


/** * 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;}        if(root->left == NULL && root->right == NULL){            return 1;        }        int min = 0;        int l = -1;        int r = -1;        if(root->left){            l = minDepth(root->left);          }        if(root->right){            r = minDepth(root->right);          }        if(l == -1){            min = r;        }        else if(r == -1){            min = l;        }        else{            min = l < r ? l : r;        }        return min + 1;      }};