std::vector<int> Algorithm::inorderTraversal(TreeNode* root)
{
std::vector<int> vecVals;
TreeNode* pCur = root;
std::stack<TreeNode*> stTree;
while (pCur != NULL || !stTree.empty())
{
while (pCur != NULL)
{
stTree.push(pCur);
pCur = pCur->left;
}
if (!stTree.empty())
{
TreeNode* pTop = stTree.top();
vecVals.push_back(pTop->val);
stTree.pop();
pCur = pTop->right;
}
}
return vecVals;
}