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 do it iteratively?
Confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.
/** * Definition for binary tree * struct TreeNode {* int val; * TreeNode *left; * TreeNode *right; * Tre Enode (int x): Val (x), left (null), right (NULL) {} *}; */class Solution {public: vector<int> inordertraversal (TreeNode *root) { Stack<treenode *> Nodestack; Vector<int> arr (0); TreeNode *node; if (root = NULL) return arr; node = root; while (!nodestack.empty () | | node!=null) { if (node!=null) { Nodestack.push (node); node=node->left; } else{ node=nodestack.top (); Arr.push_back (node->val); Nodestack.pop (); node=node->right; } } return arr; };
Binary Tree inorder Traversal