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.

思路:求二叉树最小深度,典型的递归。直接上代码吧,都看得明白。

/**

 * 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 depth(TreeNode *root)

    {

        if(root==NULL)

            return 0;

        else if(root->left==NULL && root->right==NULL)

            return 1;

        else

        {

            if(root->left==NULL)

                return depth(root->right)+1;

            else if(root->right==NULL)

                return depth(root->left)+1;

            else

            {

                int leftMin=depth(root->left);

                int rightMin=depth(root->right);

                return (leftMin>rightMin?rightMin:leftMin)+1;

            }

        }

    }

    int minDepth(TreeNode *root) {

        depth(root);

    }

};

 

你可能感兴趣的:(binary)