vector<int> inorderTraversal(TreeNode* root) {
stack<TreeNode*> stk;
vector<int> res;
while(root!=NULL||stk.empty()!=true){
while(root){
stk.push(root);
root=root->left;
}
root=stk.top();
res.push_back(root->val);
stk.pop();
root=root->right;
}
return res;
}