题源:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/solution/
一、初始代码:
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
stack<TreeNode*> s;
vector<int> res;
TreeNode *r;
if(root==NULL) return res;
s.push(root);
r=s.top();
while(r||!s.empty()){
while(r){
res.push_back(r->val);
r=r->left;
if(r!=NULL) s.push(r);
}
r=s.top();
s.pop();
if(r->right!=NULL) s.push(r->right);