题目描述
求给定的二叉树的前序遍历。
例如:
给定的二叉树为{1,#,2,3},
返回:[1,2,3].
备注;用递归来解这道题很简单,你可以给出迭代的解法么?
代码如下:
1 vector<int> preorderTraversal(TreeNode* root) { 2 TreeNode* cur = root; 3 stack<TreeNode*> s; 4 vector<int> ret; 5 while(cur || !s.empty()) 6 { 7 while(cur) 8 { 9 ret.push_back(cur->val); 10 s.push(cur); 11 cur = cur->left; 12 } 13 TreeNode* top = s.top(); 14 s.pop(); 15 cur = top->right; 16 } 17 return ret; 18 }