全部评论
这公司满二叉树和完全二叉树都分不清,还有去的必要吗
我a了 不是前序 是层次遍历
感觉样例有问题啊。。都不是满二叉树
而且都没定义一个二叉树。。
一个前序遍历就可以构建一颗二叉树? 大佬第一题的思路是啥
大佬给个代码
大佬,有第一题代码嘛
大佬给个代码呀?
第一题为什么83%,想不出哪有问题
我A了 等8点30结束了我发
题目没问题就是不严谨,应该叫完全二叉树
第二题有问题啊,我按例子画树,结果不是9
输入应该是层序遍历的结果。输出就找ind*2+2所在的值就可以,过了八十几
其实他是层次遍历
交卷了,可以分享个第一题代码吗?我没a只有83
可以参考https://blog.csdn.net/z13653662052/article/details/101224054
最后没调出来,闲下来时候调了一下,感觉重视基础很重要,字符串的输入转int类型,如何初始化二叉树,然后中序遍历即可,哎,一道没A,记录一下吧 #include<iostream>
#include<vector>
#include<string>
#include<sstream>
#include<queue>
#include<cstring>
using namespace std;
struct TreeNode
{
int val;
TreeNode* l;
TreeNode* r;
TreeNode(int x): val(x),l(NULL),r(NULL){
}
};
TreeNode* insert(vector<int> vec,int size){
TreeNode** nodes = new TreeNode*[size];
for(int i=0;i<size;i++){
if(vec[i]==0){
nodes[i]=NULL;
}else{
nodes[i]=new TreeNode(vec[i]);
}
}
queue<TreeNode*> nodeQ;
nodeQ.push(nodes[0]);
TreeNode*node;
int index = 1;
while(index<size){
node = nodeQ.front();
nodeQ.pop();
nodeQ.push(nodes[index++]);
node->l= nodeQ.back();
nodeQ.push(nodes[index++]);
node->r= nodeQ.back();
}
return nodes[0];
}
void print_inorder(TreeNode* node,vector<int> &s){
if(!(node)) return ;
print_inorder(node->l,s);
s.push_back(node->val);
print_inorder(node->r,s);
return;
}
int main(){
string str;
TreeNode* node = nullptr;
vector<int>vec2;
// while(getline(cin,str)){
cin>>str;
stringstream ss(str);
vector<int>vec;
string token;
int str2;
cin>>str2;
while(getline(ss,token,',')){
vec.push_back(stoi(token));
}
node = insert(vec,vec.size());
print_inorder(node,vec2);
for(int i=0;i<vec2.size()-1;i++){
if(vec2[i]==str2){
cout<<vec2[i+1];
}
}
return 0;
}
相关推荐
11-19 16:22
中南大学 后端 点赞 评论 收藏
分享
zachsun:华科硕士给13级?有点逆天了吧
点赞 评论 收藏
分享