Leetcode: Binary Tree Preorder Traversal
思路:
1. 不让用递归, 改用堆栈
2. 堆栈也没必要显示给出, 模拟也是可以的
代码:
class Solution {
public:
vector<int> preorderTraversal(TreeNode *root) {
vector<int> res;
if(root == NULL)
return res;
stack<TreeNode*> stc;
stc.push(root);
while(!stc.empty()) {
TreeNode* node = stc.top();
stc.pop();
if(node != NULL)
res.push_back(node->val);
if(node->right != NULL)
stc.push(node->right);
if(node->left != NULL)
stc.push(node->left);
}
return res;
}
};
后记:
写完之后才发现自己画蛇添足了
假如stc 用向量模拟的话, stc 中存储的内容就是前序遍历, 没必须再一个个的放入 res 了, 直接输出 stc 就 OK 了

浙公网安备 33010602011771号