que.push(cur); res.push_back(cur->val); while (!que.empty()) { int n = que.size(); for (int i = 0; i < n; ++i) { cur = que.front(); que.pop(); if (cur->left) { res.push_back(cur->left->val); que.push(cur->left); } if (cur->right) { res.push_back(cur->right->val); que.push(cur->right); } } } return res; } };