leetcod第一题和第二题

来源:互联网 发布:iphone 投影到mac 编辑:程序博客网 时间:2024/06/07 19:26

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();    }};