非递归:
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
vector<int> result;
TreeNode *p=root;
stack<TreeNode*> S;
while(p!=nullptr || !S.empty()){
if(p!=nullptr){
result.push_back(p->val);
S.push(p);
p=p->left;
}
else{
p=S.top();
S.pop();
p=p->right;
}
}
return result;
}
};
递归:
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
vector<int> result;
if(root==nullptr) return result;
result.push_back(root->val);
vector<int> temp;
temp=preorderTraversal(root->left);
result.insert(result.end(),temp.begin(),temp.end());
temp=preorderTraversal(root->right);
result.insert(result.end(),temp.begin(),temp.end());
return result;
}
};
本文同步分享在 博客“战 胜”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。