vector<int> preorderTraversal(TreeNode* root) {
vector<int> ret;
TreeNode temp, p=root;
while(p){
if(!p->left) {
ret.push_back(p->val);
p=p->right;
}else{
temp=p->left;
while(temp->right && temp->right!=p){
temp=temp->right;
}
if(!temp->right){
temp->right=p;
p=p->left;
temp->right=nullptr;
return ret;
Last updated 6 years ago