首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-09 11:04
美团_HR(准入职员工)
图拉斯内推,图拉斯内推码
面经:蓝禾的流程推得很快,基本上投完两天就接到了hr的初试电话,直接进行了初试。初试全程大概三十分钟,hr小哥态度很和善。主要问了实践经历获奖的情况最有成就感的事情对电商运营的理解选择公司的标准等,都是比较常规的问题。图拉斯2026届校招启动,今年HC翻倍,抓紧投递~【我们是】图拉斯(原蓝禾) 是一家集产品、设计、研发、品牌、营销和大数据运营于一体的创新型科技公司,总部位于中国深圳,全球员工规模超3000人。【base】深圳【岗位】运营(国内)、运营(国外)、营销、设计、研发技术、职能内推链接:https://lanhevip.jobs.feishu.cn/s/gAwh1MlZJsw内推码:H...
点赞
评论
收藏
分享
01-08 18:25
广东工业大学 前端工程师
虾皮一面|前端|2026.1.6下午17:00--18:00
虾皮一面详细面经本次虾皮一面以“自我介绍+项目深挖+技术细节提问+现场编程+校招沟通”为主线,核心围绕简历中的核心项目、前端底层原理展开,整体难度偏实战,注重技术落地细节,以下是完整面经梳理:一、面试开场面试官先明确了本次面试的四大模块:自我介绍、项目细节提问、基础技术点考察、双向问答。我完成自我介绍后,面试官立刻聚焦简历中的第一个核心项目(笔记项目)展开深度追问。二、核心项目1:笔记项目(重点追问模块)1. 语义检索与离线缓存向量检索相关:面试官重点问语义检索的实现逻辑,核心追问“向量如何实现语义匹配”,以及余弦距离、欧氏距离的概念(我对这两个距离概念仅能简单作答,细节掌握不足);缓存存储介...
查看16道真题和解析
点赞
评论
收藏
分享
2025-11-14 12:52
河北大学 Java
双非秋招战绩
10.17,睿联科技,挂10.30,柠檬微趣,挂11.11,最右,挂。目前还有三家流程中或者等面试😅双非秋招基本没什么面试的,只能沉下心等机会了,锻炼自己对事情悬而未决的耐心,也会成为以后的优势。正如李明博所说,我将其视为贫穷送给我的礼物。
林先生想上岸:
当年那个公共字段自动填充的少年也成长到如此地步了吗?
秋招你被哪家公司挂了?
点赞
评论
收藏
分享
01-06 09:44
深圳职业技术学院 护士
双非老鼠的悲惨秋招
老粉都知道小猪猪我很久没更新了,因为秋招非常非常不顺利,emo了三个月了,接下来说一下我的情况吧本人是双非本 专业是完全不着计算机边的非科班,比较有优势的是有两段大厂实习,美团和字节。秋招面了50+场泡池子泡死的:滴滴 快手 去哪儿 小鹏汽车 不知名的一两个小厂其中字节13场 两次3面挂 两次2面挂 一次一面挂其中有2场面试题没写出来,其他的都是全a,但该挂还是挂,第三次三面才面进去字节,秋招加暑期总共面了22次字节,在字节的面评可以出成书了快手面了8场,2次实习的,通过了但没去,一次2面挂 最后一次到录用评估 至今无消息滴滴三面完 没几天挂了 所有技术面找不出2个问题是我回答不上来的,三面还来说我去过字节,应该不会考虑滴滴吧,直接给我干傻了去哪儿一天速通 至今无消息小鹏汽车hr 至今无消息美团2面挂 然后不捞我了,三个志愿全部结束,估计被卡学历了虾皮二面挂 这个是我菜,面试官太牛逼了拼多多二面挂 3道题也全写了 也没问题是回答不出来的 泡一周后挂腾讯面了5次 一次2面挂 三次一面挂,我宣布腾讯是世界上最难进的互联网公司然后还有一些零零散散的中小厂,但是数量比较少,约面大多数都是大厂。整体的战况非常惨烈,面试机会少,就算面过了也需要和各路神仙横向对比,很多次我都是那个被比下去的人,不过这也正常,毕竟谁会放着一个985的硕士不招,反而去招一个双非读化学的小子感觉现在互联网对学历的要求越来越高了,不仅仅要985还要硕士了,双非几乎没啥生存空间了,我感觉未来几年双非想要进大厂开发的难度应该直线上升了,唯一的打法还是从大二刷实习,然后苟个转正,不然要是去秋招大概率是炮灰。而且就我面字节这么多次,已经开始问很多ai的东西了,你一破本科生要是没实习没科研懂什么ai啊,纯纯白给了
不知名牛友_:
爸爸
秋招你被哪家公司挂了?
点赞
评论
收藏
分享
01-05 12:28
已编辑
北方工业大学 前端工程师
暑期实习已经开放了 双非还有救吗
大家帮看看简历吧,求求了,第二段实习还没结束,打算干到2月初,但是看有些厂暑期实习已经开始了,有点慌了。而且自我感觉这两段实习都是打杂,质量不高,自己水平还是很一般,之后要不要试试投大厂呢?唉
今天的算法题刷了吗:
边实习边沉淀(八股、项目、算法)!共勉,备战暑期!
双非本科的出路是什么?
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
秋招50+场面试手撕算法汇总
1.2W
2
...
双非非科班2年时间的转码历程
9616
3
...
批判“上岸即胜利”的炫耀
9408
4
...
简历挂麻了?因为你的简历只有“宽度”没有“深度”!
5331
5
...
Caffeine 面经汇总
3901
6
...
小鹏汽车二面(没绷住)
2339
7
...
写论文麻了
2110
8
...
2025年牛客年度作者礼盒开箱(礼盒部分)
1775
9
...
产品自用的prompt
1440
10
...
测开劝退
1116
创作者周榜
更多
正在热议
更多
#
哪些公司在招寒假实习?
#
15547次浏览
195人参与
#
国企vs私企,你更想去?
#
305700次浏览
2491人参与
#
MiniMax求职进展汇总
#
754次浏览
23人参与
#
26年哪些行业会变好/更差
#
18750次浏览
256人参与
#
卷__卷不过你们,只能卷__了
#
11819次浏览
264人参与
#
有深度的简历长什么样?
#
16467次浏览
341人参与
#
写论文的崩溃时刻
#
6341次浏览
148人参与
#
去年的flag与今年的小目标
#
9911次浏览
196人参与
#
关于春招你都做了哪些准备?
#
122169次浏览
707人参与
#
机械人,你最希望上岸的公司是?
#
198083次浏览
1917人参与
#
现在还是0offer,延毕还是备考
#
1256428次浏览
7922人参与
#
你不能接受的企业文化有哪些
#
11766次浏览
169人参与
#
入职第一天
#
10075次浏览
219人参与
#
租房前辈的忠告
#
350468次浏览
7445人参与
#
你都用AI做什么
#
6784次浏览
156人参与
#
你怎么看待AI面试
#
133416次浏览
745人参与
#
发工资后,你做的第一件事是什么
#
93117次浏览
311人参与
#
最难的技术面是哪家公司?
#
62966次浏览
949人参与
#
腾讯音乐求职进展汇总
#
147924次浏览
1053人参与
#
华为池子有多大
#
159142次浏览
876人参与
#
一人分享一道面试手撕题
#
22773次浏览
805人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务