关注
搜索二叉树转链表
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;
}
查看原帖
点赞 评论
相关推荐
10-19 18:06
华南师范大学 Java 点赞 评论 收藏
分享
走呀走:华子二面可能会有场景题的,是有些开放性的问题了
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 职场中那些令人叹为观止的八卦 #
9205次浏览 140人参与
# 你找工作想离家近 or 离家远? #
7107次浏览 149人参与
# 小红书开奖了 #
15301次浏览 92人参与
# 我的职场社死时刻 #
7974次浏览 92人参与
# 秋招吐槽大会 #
40506次浏览 374人参与
# 你父母给过你哪些不靠谱的职场建议? #
7161次浏览 131人参与
# 百度秋招 #
44257次浏览 358人参与
# 那些年,我收到的‘奇葩’回复 #
4553次浏览 49人参与
# 哪些公司开始补录了 #
7246次浏览 105人参与
# 你秋招最后悔的选择 #
7112次浏览 65人参与
# 如何拒绝/反向PUA #
82461次浏览 369人参与
# 秋招你经历过哪些无语的事 #
4707次浏览 57人参与
# XX请雇我工作 #
6027次浏览 67人参与
# 月薪多少能在一线城市生存 #
91778次浏览 670人参与
# 职场中对你有帮助的书 #
23098次浏览 213人参与
# 中科曙光工作体验 #
5043次浏览 23人参与
# 交通银行工作体验 #
20718次浏览 69人参与
# 假如你的老板掉河里,你的工作能为他做什么 #
39543次浏览 401人参与
# 你觉得机械有必要实习吗 #
66493次浏览 481人参与
# 虾皮开奖 #
50692次浏览 246人参与
# 京东工作体验 #
21759次浏览 121人参与
# 你最满意的offer薪资是哪家公司? #
52162次浏览 264人参与
正浩创新EcoFlow公司福利 546人发布
查看7道真题和解析