1.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.(mininum-depth-of-binary-tree):二叉树
class Solution {
public:
int run(TreeNode *root) {
if(!root)
return 0;
if(!root->left)
return 1+run(root->right);
if(!root->right)
return 1+run(root->left);
else{
return 1+min(run(root->left),run(root->right));
}
}
};
2.Evaluate the value of an arithmetic expression inReverse Polish Notation.
Valid operators are+,-,*,/. Each operand may be an integer or another expression.栈
class Solution {
public:
int evalRPN(vector<string> &tokens) {
stack<int> st;
if(tokens.size()==0)
return 0;
for(int i=0;i<tokens.size();i++){
string s=tokens[i];
if(s =="+"||s=="-"||s=="*"||s=="/"){
if(st.size()<2)
return 0;
int num1=st.top();st.pop();
int num2=st.top();st.pop();
int result=0;
if(s=="+")
result=num2+num1;
else if(s=="-")
result=num2-num1;
else if(s=="*")
result=num2*num1;
else
result=num2/num1;
st.push(result);
}
else{
st.push(atoi(s.c_str()));//将字符串型数字转换为int型
}
}
return st.top();
}
};