题解 | #二叉排序树#
二叉排序树
https://www.nowcoder.com/practice/30a0153649304645935c949df7599602
#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的查找
查看8道真题和解析
