111.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.
class Solution {
public:
int minDepth(TreeNode* root) {
if(root==NULL) return 0;
if(root->left!=NULL && root->right==NULL) return minDepth(root->left)+1;
if(root->left==NULL && root->right!=NULL) return minDepth(root->right)+1;
int lefthight=minDepth(root->left);
int righthight=minDepth(root->right);
return lefthight<righthight?lefthight+1:righthight+1;
}
};
14.Write
a function to find the longest common prefix string amongst an array of strings.
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
bool flag=true;
int count=0;
char p;
string prefix="";
if(strs.size()==0) return prefix;
if(strs.size()==1) return strs[0];
while(flag)
{
p=strs[0][count];
if(p==NULL) flag=false;
for(int i=1; i<strs.size()&& flag ;i++)
{
if( count==strs[i].size() || p!=strs[i][count] ) flag=false; //若遍历到最短字符的最后一个 或者产生了不相等
}
//cout<<"aaa"<<endl;
count++;
if(flag) prefix+=p;
}
return prefix;
}
};