#include <iostream> using namespace std; struct Node { int val; Node* left, *right; Node() { left = right = nullptr; } Node(int val) : val(val) { left = right = nullptr; } }; Node *&search(Node *node, int val) { if (node->val < val) if (node->right) return search(node->right, val); else { cout << node->val << endl; return node->right; } else if (node->left) return search(node->left, val); else { cout << node->val << endl; return node->left; } } int main() { int n; cin >> n; Node *node = new Node(-1); while (n-- > 0) { int val; cin >> val; search(node, val) = new Node(val); } } // 64 位输出请用 printf("%lld")
BST的插入问题,先实现BST的查找