[LeetCode]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,2]这种情况,返回树最低高度为2。所以分两种情况,有一棵子树不在时,返回另一棵子树树高+1,否则返回矮子树高+1.

/**

 * Definition for binary tree

 * struct TreeNode {

 *     int val;

 *     TreeNode *left;

 *     TreeNode *right;

 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}

 * };

 */

class Solution {

private:

    int ret;

public:

    int DFS(TreeNode *root)

    {

        if(root==NULL) return 0;

        else if(!root->left&&!root->right) return 1;

        int height1=DFS(root->left);

        int height2=DFS(root->right);

        if(height1==0) return height2+1;

        if(height2==0) return height1+1;

        return min(height1,height2)+1;

    }

    int minDepth(TreeNode *root) {

        if(root==NULL) return 0;

        ret=DFS(root);

        return ret;

    }

};

  

你可能感兴趣的:(LeetCode)