144. Binary Tree Preorder Traversal (Tree, Stack)
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<int> preorderTraversal(TreeNode *root) { vector<int> result; if(!root) return result; stack<TreeNode* > treeStack; 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; } };