数据结构作业——地鼠安家(二叉搜索树)

地鼠安家 1

Description

fd 是一个公认的美丽校园。一天, fd 来了一群地鼠,编号为 1 到 n,他们希望 在这里定居。现在先由第一只地鼠往下打一个单位的距离,并且在那里安家。对 于每一个已经安家的地鼠,如果他左下或右下没有邻居,那还没安家的地鼠就可 以在他的左下或者右下安家。地鼠们已经建完所有的窝了,他们评价这些窝合格 的标准是它们能不能形成一棵二叉搜索树( 二叉搜索树的定义见课本)。现在需 要你帮助他们评估一下他们的窝挖的是否合格。

Input

第 1 行一个整数 n,表示地鼠总共 n 只。接下来一共 n 行,每一行三个数: l,o,r,其中 l 表示编号为 o 的地鼠的左邻居的编号, r 表示的是编号为 o 的右邻居的编号,如果没有左邻居或右邻居,则 l 或 r 为-1。 1<=n<=10000。 保证给出的是一颗二叉树。

Output

输出一行,如果如果他们的窝合格,则输出安居在最深的窝的地鼠离地面的距离,如果
不合格,则输出-1。

Sample Input

5 
-1 1 -1
1 2 3 -
1 3 -1
2 4 5
-1 5 -1

Sample Output

3

思路

二叉搜索树中序遍历得到的是一个严格上升序列,因此可以通过判断中序遍历的结果是否是上升序列来解,也可以在搜索的时候直接判断是否符合二叉搜索树的定义。

 AC代码

 

  

  

posted @   zxzhang  阅读(793)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示

目录导航