Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 2 / 3 return [1,3,2]. Note: Recursive solution is trivial, could you do it iteratively?
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<int> inorderTraversal(TreeNode *root) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<int> res; if(root == NULL) return res; stack<TreeNode *> mys; while(! (mys.empty()) || root!= NULL) { while(root!= NULL){ mys.push(root); root = root->left; } root = mys.top(); mys.pop(); res.push_back(root->val); root = root->right; } return res; } };