马蜂窝笔试

大佬们,给定一棵满二叉树,要求找出中序遍历序列的下一个节点。这个编程怎么做#马蜂窝##笔试题目#
全部评论
这公司满二叉树和完全二叉树都分不清,还有去的必要吗
点赞 回复 分享
发布于 2019-09-23 20:08
我a了 不是前序 是层次遍历
点赞 回复 分享
发布于 2019-09-23 20:29
感觉样例有问题啊。。都不是满二叉树
点赞 回复 分享
发布于 2019-09-23 19:43
而且都没定义一个二叉树。。
点赞 回复 分享
发布于 2019-09-23 19:48
一个前序遍历就可以构建一颗二叉树? 大佬第一题的思路是啥
点赞 回复 分享
发布于 2019-09-23 19:52
大佬给个代码
点赞 回复 分享
发布于 2019-09-23 19:53
大佬,有第一题代码嘛
点赞 回复 分享
发布于 2019-09-23 19:56
大佬给个代码呀?
点赞 回复 分享
发布于 2019-09-23 20:08
第一题为什么83%,想不出哪有问题
点赞 回复 分享
发布于 2019-09-23 20:15
我A了 等8点30结束了我发
点赞 回复 分享
发布于 2019-09-23 20:17
题目没问题就是不严谨,应该叫完全二叉树
点赞 回复 分享
发布于 2019-09-23 20:22
第二题有问题啊,我按例子画树,结果不是9
点赞 回复 分享
发布于 2019-09-23 20:24
输入应该是层序遍历的结果。输出就找ind*2+2所在的值就可以,过了八十几
点赞 回复 分享
发布于 2019-09-23 20:27
其实他是层次遍历
点赞 回复 分享
发布于 2019-09-23 20:28
交卷了,可以分享个第一题代码吗?我没a只有83
点赞 回复 分享
发布于 2019-09-23 20:29
可以参考https://blog.csdn.net/z13653662052/article/details/101224054
点赞 回复 分享
发布于 2019-09-23 20:34
最后没调出来,闲下来时候调了一下,感觉重视基础很重要,字符串的输入转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; }
点赞 回复 分享
发布于 2019-09-23 21:42

相关推荐

点赞 评论 收藏
分享
10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
点赞 5 评论
分享
牛客网
牛客企业服务