首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Y3912
中国科学院大学 算法工程师
发布于北京
关注
已关注
取消关注
@我要出去乱说:
程序员代码面试指南 3.15:判断一棵二叉树是否为搜索二叉树
1、思路对于二叉搜索树的判断,可以在中序遍历时保存前一个节点的值,每次比较当前节点值与前一节点值,若前一节点值较大,则该二叉树不是二叉搜索树;对于完全二叉树的判断,可以按照以下标准进行: 1、层序遍历二叉树; 2、若当前节点有右子节点却没有左子节点,则直接返回false; 3、若当前节点并不是左右孩子都有,那么之后的节点必须都为叶子结点,否则返回false; 4、遍历过程中若不返回false,则遍历结束后返回true。2、代码#include <iostream>#include <stack>#include <queue>using namespace std;struct TreeNode{ int val; TreeNode *left, *right; TreeNode(int _val) : val(_val), left(nullptr), right(nullptr) {}};//建树void createTree(TreeNode *root){ int rootVal, leftVal, rightVal; cin >> rootVal >> leftVal >> rightVal; root->val = rootVal; if (leftVal != 0) { root->left = new TreeNode(leftVal); createTree(root->left); } if (rightVal != 0) { root->right = new TreeNode(rightVal); createTree(root->right); }}//判断二叉搜索树(二叉树中序遍历的迭代版)bool isBST(TreeNode *root){ if (root == nullptr) return true; stack<TreeNode*> stk; TreeNode *p = root, *pre = nullptr; while (p != nullptr || !stk.empty()) { if (p != nullptr) { stk.push(p); p = p->left; } else { p = stk.top(); stk.pop(); if (pre != nullptr && pre->val >= p->val) { return false; } pre = p; //更新前一节点的值 p = p->right; } } return true;}//判断完全二叉树(二叉树的层序遍历)bool isCBT(TreeNode *root){ if (root == nullptr) return true; queue<TreeNode*> q; q.push(root); TreeNode *left, *right; bool isLeaf = false; while (!q.empty()) { TreeNode *node = q.front(); q.pop(); left = node->left; right = node->right; //情况 2 和 情况 3 if ((isLeaf && (left != nullptr || right != nullptr)) || (left == nullptr && right != nullptr)) { return false; } if (left != nullptr) { q.push(left); } if (right != nullptr) { q.push(right); } else { //若没有右子树,则该节点之后的所有节点均为叶子节点 isLeaf = true; } } return true;}int main(){ int n, rootVal; cin >> n >> rootVal; TreeNode *root = new TreeNode(rootVal); createTree(root); if (isBST(root)) { cout << "true" << endl; } else { cout << "false" << endl; } if (isCBT(root)) { cout << "true" << endl; } else { cout << "false" << endl; } return 0;}
点赞 1
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-04 11:54
中南大学 Java
互联网大厂是不是可以玩献祭流?
听说部分互联网厂的员工在工位上猝死可得5倍年薪赔偿? 我发现互联网还有献祭流这种玩法啊。假如生命只剩5小时,我建议4个小陪伴父母,半小时自己去买点好吃的,剩下半小时直接打开mac开始办公。来吧,互联网职业生涯的最后一舞! 互联网这个版本的强度还是太超标了啊! 至于为什么会猝死你别管。#牛客AI配图神器#
Java抽象小篮子:
你互联网叔叔这版本这么超标,不削能玩?
互联网公司评价
点赞
评论
收藏
分享
05-01 11:14
中南大学 Java
互联网只适合竭泽而渔
互联网只适合竭泽而渔,不适合可持续发展,或者说根本就做不到可持续发展。因为互联网的职业生涯很短,而且会越来越短。ai诱发的降本增效一轮又一轮,会不停的把老人筛出去然后把新人招进来,等ai充分榨干了这批新人的技能和idea之后又会重复一轮降本增效。所以新人入行更难而且注定难以待得长久啊。那么就有人问了:篮子哥,我已经上了互联网的贼船了,手里有几个互联网大厂的of,应该怎么选呢?我的答案是:无脑选工资高的,不需要在乎什么职业前景,是否是客户端,是否是大厂,是否工作强度大。原因就是我刚才说的:互联网职业生涯很短,无脑狠赚笔就是当代最优解了。不过话说回来,能多干1年肯定是比啥月薪多5000都要强得多的...
军工所铁饭碗 vs 互联...
点赞
评论
收藏
分享
04-03 11:24
门头沟学院 Java
腾子暑期实习oc了
从一月中到现在,最大的感悟是累、其次是不要怀疑自己
点赞
评论
收藏
分享
03-14 18:07
江南大学 Java
27届0实习,求拷打简历
投boss已经投麻了,好多都是已读不回,找不到啥约面的机会,想求问一下各位大佬现在是继续找日常好,还是冲暑期好,找暑期我怕要求太高过不了面两个项目都是我问ai写的,求问大佬们还有啥需要改进的地方吗
点赞
评论
收藏
分享
昨天 17:06
已编辑
管理培训生
求offer建议
Offer选择求一些建议 礼意久久/亿联1.深圳礼意久久 - 跨境电商 - 年薪大概21W, 做电商公司的商品产品经理,965双休2.厦门亿联 - 市场经理(类似GTM)- 年薪21-23W,据说每周2-3天加班到8.30,不知道发展怎么样去深圳电商公司的话了解了一下公司氛围等似乎都还可以,但担心小品牌或者贴牌的产品做久了会挣不到钱被当耗材以后没有竞争力。去厦门的话就是图平台,但不清楚这种类似GTM岗位的发展前途,也担心以后要发展要长期驻外。个人长期来看希望要么能够自己创业,要么攒够一笔钱去养老,但不知道这些职业的未来发展,请求有前辈的话给点建议
校招我听劝
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
毕业了,有些话只能藏在心里了
1.9W
2
...
毕业啦!我们要一起去广州打拼啦!
1.9W
3
...
2026春招到底卷成什么样了?填问卷说出真相,最高领200元现金红包
1.5W
4
...
字节 中国交易与广告 后端一面
1.2W
5
...
211本,130投0面,agent应用开发,简历求助!
7932
6
...
从阿里被裁到快手升P6,我花了四年
7648
7
...
华为暑期实习
7157
8
...
从腾讯到阿里感,谢一路走来的自己
6548
9
...
别人:阿里 字节 腾讯
6520
10
...
在携程的一天
6384
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
31183次浏览
228人参与
#
校招薪资来揭秘
#
960366次浏览
4061人参与
#
在爱玛,骑向未来
#
20138次浏览
394人参与
#
如果春招能重来,我会___
#
29137次浏览
290人参与
#
24秋招避雷总结
#
1019814次浏览
7098人参与
#
你会因为行情,降低找工作标准吗?
#
44800次浏览
328人参与
#
联宝杯大学生创新大赛,你的技术值得产业级答案
#
50677次浏览
781人参与
#
机械人还在等华为开奖吗?
#
339150次浏览
1652人参与
#
米哈游求职进展汇总
#
688528次浏览
3348人参与
#
华为池子有多大
#
177971次浏览
931人参与
#
26届春招投递记录
#
8614次浏览
71人参与
#
25届网易互娱暑实进度
#
109056次浏览
802人参与
#
通信/硬件求职避坑tips
#
171972次浏览
1170人参与
#
记录我的毕业季
#
4444次浏览
116人参与
#
机械人,你的秋招第一份简历被谁挂了
#
268708次浏览
2450人参与
#
远程面试的尴尬瞬间
#
363765次浏览
2062人参与
#
大学最后一个寒假,我想……
#
103270次浏览
846人参与
#
机械求职避坑tips
#
103648次浏览
589人参与
#
你认为小厂实习有用吗?
#
145004次浏览
762人参与
#
运营商笔面经互助
#
219568次浏览
1833人参与
#
美团秋招笔试
#
216287次浏览
1191人参与
#
网易求职进展汇总
#
213092次浏览
1523人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务