首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 14:37
牛客运营
uu们,面试的时候一定要大大方方的啊!
最近又开始密集面试实习生了(没办法,大家都干三个月就走了😭),每隔两三个月就得重新招人,我也很无奈(知道你们找工作不容易,都在刷实习经历🤭)今天上午一口气看了十多份AI面试的视频截图,发现了一些大家普遍会踩的坑。正好从面试官的角度,给uu们拆解一下(通用版)。面试前,建议你先认真问自己几个问题:1. 你真的那么了解自己(和你的简历)吗?很多同学在回答问题时,会频繁出现“嗯…啊…呃…”这类语气词,说话像挤牙膏,还常有长时间停顿。这容易让面试官觉得:要么你对经历不熟,要么表达能力有欠缺。其实简历上的每一段经历,你都应该能流畅讲出做了什么、学到了什么、遇到了什么困难、怎么解决的——别等到被问倒才...
点赞
评论
收藏
分享
2025-12-30 14:53
OPPO_AI算法部_AI研究员(准入职员工)
霸王茶姬内推,霸王茶姬内推码
1️⃣霸王茶姬面经(hr面) “简单自我介绍一下” 我大概讲了专业成绩和获奖等,我特意提到了我在社团有过活动策划的经历 “嗯有过活动策划经历是吧,说一下你对最近的市场热点有关注吗” “你了解霸王茶姬吗?就你的了解说一下” “你知道我们最近做的活动吗?” “你觉得你的沟通能力怎么样” “你知道达人是什么吗” “你了解我们这个岗位吗” “你觉得以你的经历,能为这个岗位带来什么,你做这个岗位的优势是什么” “你从大学城到公司大概要多久” -反问环节 问了薪资和上下班时间之类的 2️⃣霸王茶姬复试面经(部门主管面) “简单介绍一下自己” “你觉得做一个活动策划最重要的是什么” “你想从我们这个实习中获...
点赞
评论
收藏
分享
2025-12-01 15:50
内蒙古工业大学 Java
回答的比较傻逼
应该是挂了,哎
小厂传奇耐挂王:
缺点我说粗心
听到哪句话代表面试稳了O...
点赞
评论
收藏
分享
2025-12-08 17:28
无锡高等师范学校 算法工程师
最后再看下工位,就走吧
牛马人的牛马人生:
一开始看成了网吧
点赞
评论
收藏
分享
2025-12-30 14:44
百度_感知算法工程师(准入职员工)
图拉斯内推,图拉斯内推码
面经:蓝禾的流程推得很快,基本上投完两天就接到了hr的初试电话,直接进行了初试。初试全程大概三十分钟,hr小哥态度很和善。主要问了实践经历获奖的情况最有成就感的事情对电商运营的理解选择公司的标准等,都是比较常规的问题。图拉斯2026届校招启动,今年HC翻倍,抓紧投递~【我们是】图拉斯(原蓝禾) 是一家集产品、设计、研发、品牌、营销和大数据运营于一体的创新型科技公司,总部位于中国深圳,全球员工规模超3000人。【base】深圳【岗位】运营(国内)、运营(国外)、营销、设计、研发技术、职能内推链接:https://lanhevip.jobs.feishu.cn/s/gAwh1MlZJsw内推码:H...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
为什么你的实习是“无效实习”?又该如何做
4624
2
...
都 2026 年了,还在神话 AI Agent开发吗?
2043
3
...
最后一天,你的2025牛客年度报告即将封存!
1748
4
...
2025找工年终总结
1453
5
...
双非终于上岸了!!!!
1369
6
...
uu们,面试的时候一定要大大方方的啊!
1211
7
...
简历求锐评,211硕士找实习
959
8
...
元启视界一面(12-31号下午3点)
726
9
...
Goodnight World!文科转码兜兜转转的那些年……
696
10
...
字节实习生涨薪保真?
692
创作者周榜
更多
正在热议
更多
#
牛客2025仙途报告
#
54822次浏览
553人参与
#
机械/制造每日一题
#
82122次浏览
1431人参与
#
非技术2023笔面经
#
317074次浏览
2686人参与
#
机械求职避坑tips
#
82642次浏览
538人参与
#
工作中,努力重要还是选择重要?
#
248535次浏览
2413人参与
#
应届生,你找到工作了吗
#
97655次浏览
598人参与
#
如果秋招能重来,我会____
#
79688次浏览
471人参与
#
面试紧张时你会有什么表现?
#
21156次浏览
154人参与
#
为了找工作你投递了多少公司?
#
99563次浏览
685人参与
#
对2025年忏悔
#
10321次浏览
188人参与
#
春招前还要继续实习吗?
#
12855次浏览
142人参与
#
每个月的工资都是怎么分配的?
#
81707次浏览
665人参与
#
虾皮求职进展汇总
#
362792次浏览
2768人参与
#
影石Insta360求职进展汇总
#
169413次浏览
1345人参与
#
哪些公司笔/面试难度大?
#
7496次浏览
35人参与
#
AI时代,哪些岗位最容易被淘汰
#
26058次浏览
223人参与
#
你面试被问到过哪些不会的问题?
#
107308次浏览
1879人参与
#
秋招被确诊为……
#
280550次浏览
1589人参与
#
大疆的机械笔试比去年难吗
#
96362次浏览
767人参与
#
电信求职进展汇总
#
36020次浏览
191人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务