2
* Definition for a binary tree node.7
* TreeNode() : val(0), left(nullptr), right(nullptr) {}8
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}9
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left),15
vector<TreeNode *> arr;17
CBTInserter(TreeNode *root) {22
if (q.front()->left != NULL) {23
arr.push_back(q.front()->left);24
q.push(q.front()->left);26
if (q.front()->right != NULL) {27
arr.push_back(q.front()->right);28
q.push(q.front()->right);35
TreeNode *new_node = new TreeNode(val);36
arr.push_back(new_node);37
int parent_index = (arr.size() - 2) / 2;38
if (2 * parent_index + 1 == arr.size() - 1) {39
arr[parent_index]->left = new_node;41
arr[parent_index]->right = new_node;43
return arr[parent_index]->val;46
TreeNode *get_root() {52
* Your CBTInserter object will be instantiated and called as such:53
* CBTInserter* obj = new CBTInserter(root);54
* int param_1 = obj->insert(val);55
* TreeNode* param_2 = obj->get_root();