Given a binary tree, return the inorder traversal of its nodes' values.
For example:Given binary tree[1,null,2,3],
1
\
2
/
3
return [1,3,2].
Note: Recursive solution is trivial, could you do it iteratively?
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> path;
TreeNode* p = root;
if(root == NULL)
return path;
stack<TreeNode*> s;
while(!s.empty()||p!=NULL)
{
if(p!=NULL)
{
s.push(p);
p = p->left;
}
else
{
p = s.top();
path.push_back(p->val);
s.pop();
p = p->right;
}
}
return path;
}
};