关注
搜索二叉树转链表
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;
}
查看原帖
点赞 评论
相关推荐
07-21 18:21
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开提前批了? #
26162次浏览 263人参与
# 华子oc时间线 #
1244205次浏览 6484人参与
# 风评不好的公司,你会去吗? #
61116次浏览 442人参与
# 实习如何「偷」产出? #
50889次浏览 1329人参与
# 除了主业以外,你还有哪些其他收入? #
12049次浏览 201人参与
# 不卡学历的大厂有哪些? #
29095次浏览 228人参与
# 哪些公司校招卡第一学历 #
68058次浏览 268人参与
# 校招阶段,学历VS技术哪个更重要? #
17609次浏览 188人参与
# 职场新人体验 #
25779次浏览 245人参与
# 腾讯音乐求职进展汇总 #
98124次浏览 570人参与
# 社恐入职新公司如何融入团队 #
11903次浏览 63人参与
# 校园里的破防时刻 #
11355次浏览 128人参与
# 你投递的公司有几家约面了? #
108940次浏览 779人参与
# Offer比较,你最看重什么? #
191615次浏览 1301人参与
# 你觉得技术面多长时间合理? #
100262次浏览 720人参与
# 你的秋招第一场笔试是哪家 #
147721次浏览 1484人参与
# 你最满意的offer薪资是哪家公司? #
33104次浏览 176人参与
# 你今年的平均薪资是多少? #
134033次浏览 686人参与
# 正在实习的碎碎念 #
1454788次浏览 13469人参与
# 实习打杂,要跑路吗 #
18234次浏览 205人参与