vector<TreeNode*> data;
vector<int> result;
data.push_back(root);
if (root == nullptr) return result;
while (!data.empty()){
TreeNode *temp = data[0];
result.push_back(temp->val);
data.erase(data.begin());
if(temp->left){
data.push_back(temp->left);
}
if(temp->right){
data.push_back(temp->right);
}
}
return result;