全部评论
Java的是什么沙雕题...就记住曼联与曼城了
我也看不懂题意……然而直接set去重排序就能通过100%
有编程题吗??????
你是什么岗位啊?
能不能给看下代码啊,大佬
直接输入序列用set,然后依次输出,百分之百
第一题有么
楼主C++第二道题目是啥
C++第一题有代码吗?
本来是剑指offer原题,但是oppo这个只要排序去重,然后输出就好了
第二题是剑指offer原题,二叉搜索树转双向链表,二叉搜索树的节点和插入都需要自己定义的。。。题是好题,可惜有空子可钻= =
直接去重排序就可以了
你们C++编程题是什么啊 为什么好像所有人都和我不一样.... 我是输出大根堆和一道集合题 而且我没发现有可以运行的按钮啊,不是人工评卷吗??哪来的AC这说法
c++第二题去重排序输出,会不会被发现~会人工阅卷吗
搜索二叉树转链表
struct Node{
int val;
Node* left;
Node* right;
Node(int a):val(a),left(NULL),right(NULL){}
};
void pre(Node* node,Node*& p) {
if (!node) return;
pre(node->left, p);
node->left = p;
if (p) p->right = node;
p = node;
pre(node->right, p);
}
Node* Convert(Node* pRootOfTree) //原地转链表
{
if (!pRootOfTree)
return pRootOfTree;
Node* t = nullptr;
pre(pRootOfTree, t);
while (pRootOfTree->left)
pRootOfTree = pRootOfTree->left;
return pRootOfTree;
}
void insert(Node* root,int t) { //插入二叉搜索树
if (root->val == t)
return;
if (t < root->val&&root->left==NULL) {
root->left = new Node(t);
return;
}
if (t>root->val&&root->right == NULL) {
root->right = new Node(t);
return;
}
if (t < root->val) {
insert(root->left,t);
return;
}
if (t > root->val) {
insert(root->right, t);
return;
}
return;
}
int main() {
int t;
cin >> t;
Node* root = new Node(t);
while (cin>>t) {
insert(root,t);
char c=getchar();
if (c=='\n') {
break;
}
}
root=Convert(root);
while (root) {
cout << root->val;
root = root->right;
}
system("pause");
return 0;
}
相关推荐