94. Binary Tree Inorder Traversal

来源:互联网 发布:火爆网络的ann艳照 编辑:程序博客网 时间:2024/06/03 17:03

problem:

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?


solution:

class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> rei;
stack<TreeNode *> undone;
TreeNode *pCurrent = root;
while (!undone.empty()|| pCurrent != NULL)
{
if (pCurrent->left != NULL)
{
undone.push(pCurrent);
pCurrent = pCurrent->left;
}
else
{
pCurrent = undone.top();
rei.push_back(pCurrent->val);
pCurrent = pCurrent->right;


}
}
return rei;
}
};