关注
搜索二叉树转链表
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;
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 你不能接受的企业文化有哪些 #
157次浏览 8人参与
# 应届生第一份工作最好去大厂吗? #
122801次浏览 1077人参与
# 有深度的简历长什么样? #
116次浏览 3人参与
# 非技术er求职现状 #
126742次浏览 769人参与
# 工作后会跟朋友渐行渐远吗 #
54612次浏览 398人参与
# CVTE工作体验 #
17046次浏览 39人参与
# 双非本科的出路是什么? #
191409次浏览 1514人参与
# 运营/市场/管培生岗位评价 #
28800次浏览 179人参与
# 百度工作体验 #
297585次浏览 2214人参与
# 春招前还要继续实习吗? #
13821次浏览 150人参与
# 对2025年忏悔 #
11306次浏览 194人参与
# 搜狐工作体验 #
2789次浏览 22人参与
# 秋招感动瞬间 #
111615次浏览 507人参与
# 每个月的工资都是怎么分配的? #
81834次浏览 666人参与
# 帆软软件工作体验 #
8453次浏览 34人参与
# 一人说一家双休的公司 #
16257次浏览 170人参与
# 应届生,你找到工作了吗 #
97970次浏览 598人参与
# 非技术2024笔面经 #
452857次浏览 4922人参与
# 工作前VS工作后,你的心态变化 #
32190次浏览 251人参与
# 秋招被确诊为…… #
280687次浏览 1589人参与
