leetcode 7:binary-tree-preorder-traversal

题目描述

求给定的二叉树的前序遍历。
例如:
给定的二叉树为{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     }

扩展:二叉树的非递归遍历(前序,中序,后序和层序遍历)

 
 
原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13453313.html