华为OD机试真题 新系统 2026-08-12 PythonJS【获取二叉树第k层的数值】
2026/9/3 6:57:47 网站建设 项目流程

目录

题目

思路

Code

题目

题目内容:

给定一棵有根二叉树,请找出第 k 层上的所有节点值,去重后按升序输出。

根节点编号固定为 0,输入边 [father,child] 表示父子关系,根节点所在层为第 0 层。

输入描述:

输入共四行。第一行是节点数 n,节点编号为 0 到 n-1。第二行是长度为 n 的 vals,vals[i] 表示节点 i 的值。第三行是边数组 edges。第四行是目标层数 k。

输出描述:

输出第 k 层节点值去重后的升序数组;该层不存在节点时输出 []。

样例 1

输入:

5 5,3,8,3,7 [[0,1],[0,2],[1,3],[1,4]] 2

输出:

[3,7]

思路

整体思路:先根据父子边建立邻接表,再从根节点 0 开始按层进行广度优先搜索。

第一步:children[father] 保存该父节点的所有孩子,输入保证整体是一棵合法二叉树。

第二步:队列初始只有根节点,每推进一轮就把当前层整体替换成下一层。

第三步:推进到第 k 层后取出节点值,使用集合

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询