Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree{1,#,2,3}
, 1 \ 2 / 3
return [1,2,3]
.
Note: Recursive solution is trivial, could you do it iteratively?
class Solution {public: vector preorderTraversal(TreeNode *root) { vector result; if(!root) return result; stacktreeStack; treeStack.push(root); TreeNode* current; while(!treeStack.empty()) { current = treeStack.top(); treeStack.pop(); result.push_back(current->val); if(current->right) treeStack.push(current->right); if(current->left) treeStack.push(current->left); } return result; }};