1001:Binary Tree

时间限制:2 S   /  内存限制:65536 KB
AC:51   /  Submit:277
问题描述

二叉树(Binary tree)是树形结构的一个重要类型,它是 N 个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。

现在给你一棵已经构造好的二叉树和 N 个值,你需要合理地把这些值放到这棵二叉树的各个节点上来满足:对于任意一个节点,其左孩子(如果有)比自己小,右孩子(如果有)比自己大。

输入描述

输入的第 1 行包含一个正整数 N。(1 <= N <= 100)

第 2 行有 N 个 int 类型的数字,表示【描述】中给定的值。

接下来的 N 行,每行有 2 个数,分别代表从根节点开始,每个节点左右孩子的数量,输入的顺序按照从根节点往下递归。

特别地,当为叶子节点时,这两个数值都为 -1。

输出描述

输出该二叉树的层序遍历结果,每两个数字之间用空格隔开,最后一个数后面没有空格和换行。

样例输入复制样例

7

5 2 3 4 7 6 9

3 3

1 1

-1 -1

-1 -1

1 1

-1 -1

-1 -1

样例输出

5 3 7 2 4 6 9

提示说明

样例中的二叉树如下图

相关

Beta Mid-Autumn Round#1

题单#17(树和图的存储与遍历)


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1