首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-02 17:06
长沙工业学院 测试开发
带你理解求最大公因数的算法
前言:在数学学习与计算机编程中,我们经常需要计算两个数字的最大公约数。它既能简化分数计算,也是密码算法、数据运算里最 基础的常用在数学学习与计算机编程中,我们经常需要计算两个数字的最大公约数。它既能简化分数计算,也是密码算法、数据运算里最基础的常用工具。 从古至今,人们总结出两种最经典、流传最广的求解方法:更相减损术与辗转相除法。两种算法底层逻辑相通,都依靠数字公因数不变的数学规律缩小数值,但运算方式、速度效率截然不同。 本文用最简单直白的语言,不带复杂公式,一步步拆解两种算法的原理、过程与优劣对比,带你彻底看懂古人智慧与现代最优解法的区别。<1>更相减损术 #include &l...
点赞
评论
收藏
分享
05-05 20:30
中国矿业大学(北京) Web前端
秋招倒计时:30天从零到一拿下前端实习(附完整冲刺路线)
最近不少学前端的都有提到说,发现今年秋招前端的竞争已经不止卷八股和项目了——“AI 全栈”这个词开始出现在前端 JD 里。很多岗位可能还会明确写“了解大模型应用、Agent 开发优先”,哪怕你是投前端实习。于是就出现了一个尴尬的现状:传统前端路线还在让你慢慢啃 HTML/CSS/JS,做完一个后台管理系统就去面试。但另一边,企业已经开始期待你能聊一聊 Agent、流式响应、工具调用。很多人其实也不是不想学,就是不知道怎么把 AI 项目和前端实习路线揉在一起,又不影响基础学习节奏。所以我趁着放假梳理了一份 30 天“传统前端 + AI Agent”双项目冲刺路线,给秋招前想刷一段前端实习的同学参...
前端面试准备&技...
点赞
评论
收藏
分享
03-29 22:24
数据分析师
华为求捞
秋招泡死了,有没有帅气美丽的hr捞捞我和我的姐妹
华为开奖那些事
点赞
评论
收藏
分享
04-16 15:46
已编辑
杭州电子科技大学 Java
腾讯录用评估求伯乐码!!!
想当鹅孝女呜呜附tl:3.20 一面+二面3.23 三面3.24 显示hr面3.26 晚上收到hr面试 第二天面3.27 面完hr 7min hr很忙然后面完界面还停在链接3.30 云证 但是还是显示hr面3.31 录用评估中4.2offer流程中4.16 hr似乎婉拒 大概率凉了
不知道叫啥2333:
27号转的现在还卡着
点赞
评论
收藏
分享
05-03 21:14
门头沟学院 人工智能
暑期实习(汇总)
一、互联网简历泡池子:美团、京东、蚂蚁简历挂:字节、阿里、快手、拼多多一面挂:腾讯收到offer: 智源人工智能研究院、小红书二、硬件厂一面挂:寒武纪、momenta、地平线三、总结原本计划提前离职待出租房全力找工作,但提离职时mentor和我说,可以在公司边待边找,公司里的任务不急,可以抽出一半时间准备面试,且公司里的电话亭也可以用来面试,所以我也就欣然同意了。没想到在这样的条件下,都感觉找工作页贼焦虑,有点不敢想全职找得焦虑成啥样。小红书二面后也经历了“暂不合适”,好在最后被捞起来了,然后五一前收到了书面offer,最后也是决定去这儿。离职的时候还和大家说了说投递情况,他们觉得我投递的方向...
我的求职进度条
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
毕业啦!我们要一起去广州打拼啦!
1.8W
2
...
毕业了,有些话只能藏在心里了
1.6W
3
...
2026春招到底卷成什么样了?填问卷说出真相,最高领200元现金红包
1.3W
4
...
字节 中国交易与广告 后端一面
1.1W
5
...
211本,130投0面,agent应用开发,简历求助!
7518
6
...
从阿里被裁到快手升P6,我花了四年
6808
7
...
别人:阿里 字节 腾讯
5762
8
...
在携程的一天
5756
9
...
从腾讯到阿里感,谢一路走来的自己
5346
10
...
华为暑期实习
5346
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
31727次浏览
230人参与
#
校招薪资来揭秘
#
960577次浏览
4062人参与
#
在爱玛,骑向未来
#
20376次浏览
395人参与
#
如果春招能重来,我会___
#
29384次浏览
295人参与
#
24秋招避雷总结
#
1020004次浏览
7098人参与
#
你会因为行情,降低找工作标准吗?
#
45134次浏览
328人参与
#
机械人还在等华为开奖吗?
#
339204次浏览
1652人参与
#
米哈游求职进展汇总
#
688634次浏览
3348人参与
#
华为池子有多大
#
178073次浏览
931人参与
#
26届春招投递记录
#
8663次浏览
72人参与
#
25届网易互娱暑实进度
#
109100次浏览
802人参与
#
通信/硬件求职避坑tips
#
172025次浏览
1170人参与
#
记录我的毕业季
#
4595次浏览
118人参与
#
机械人,你的秋招第一份简历被谁挂了
#
268757次浏览
2450人参与
#
远程面试的尴尬瞬间
#
363837次浏览
2062人参与
#
大学最后一个寒假,我想……
#
103293次浏览
846人参与
#
机械求职避坑tips
#
103677次浏览
589人参与
#
你认为小厂实习有用吗?
#
145045次浏览
762人参与
#
运营商笔面经互助
#
219630次浏览
1833人参与
#
美团秋招笔试
#
216381次浏览
1192人参与
#
网易求职进展汇总
#
213150次浏览
1523人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务