classSolution{String[] tokens;//将tokens保存到公共中,递归时可以直接使用int cur;//二叉树指针publicintevalRPN(String[] tokens){this.tokens = tokens;
cur = tokens.length -1;//指针初始指向最后一个字符,也就是根结点returndfs();//进行dfs}publicintdfs(){String token = tokens[cur--];//拿到当前结点switch(token){//如果是操作符,左右孩子如果是数字就进行运算case"+"->{returndfs()+dfs();}case"*"->{returndfs()*dfs();}case"-"->{int right =dfs();int left =dfs();return left - right;}case"/"->{int right =dfs();int left =dfs();return left / right;}//如果当前不是操作符,就把数字返回,让其参与运算default->{returnInteger.valueOf(token);}}}}