#include<iostream> using namespace std; typedef struct node{ int val; struct node *left, *right; }bittree, *tree; //递归建树,并且返回父亲节点 int build(tree &t, tree node){ if(t == NULL){ t = node; return -1; } if(t->val > node->val){ if(t->left == NULL){ t->left = node; return t->val; }else{ return build(t->left, node); } }else if(t->val < node->val){ if(t->right == NULL){ t->right = node; return t->val; }else{ return build(t->right, node); } }else{ return -1; } } int main(){ int n, m; cin >> n; tree t = NULL; for(int i = 0; i < n; i++){ cin >> m; tree node = (tree)malloc(sizeof(bittree)); node->left = NULL; node->right = NULL; node->val = m; cout << build(t, node) << endl; } return 0; }