void gen_right(TreeNode *root, int lev, vector<int>& res) { if (!root) {return;} if (res.size() < lev) {res.push_back(root->val);} gen_right(root->right, lev + 1, res); gen_right(root->left, lev + 1, res); }
LLVMValueRef gen_right_assign(struct node *ast) { LLVMValueRef result; result = gen_right(ast); check_store(result, lvalue(ast->one)); return result; }
vector<int> rightSideView(TreeNode* root) { vector<int> res; if (!root) {return res;} res.push_back(root->val); int lev = 1; gen_right(root, lev, res); return res; }