241010 - 魔法森林的宝藏

题目描述

在一个遥远的魔法森林里,住着一位勇敢的小精灵。传说这片森林里隐藏着一座神秘的宝藏,而宝藏的位置由一棵特殊的二叉树决定。这棵树的每个节点上都刻有一个字符,可能是字母或数字。

小精灵的任务是按照中序遍历的方式找到这些节点,并将它们按顺序排列出来。所谓中序遍历,就是先访问左子树,再访问根节点,最后访问右子树。

为了帮助小精灵完成任务,你需要编写一个程序,模拟这个中序遍历的过程。程序的输入包括两部分:

第一行是一个整数 n(0<=n<=1000),表示二叉树的节点总数。 第二行包含 n 个字符,依次表示二叉树从根节点开始的各层节点的值。 如果某个节点为空(用字符 '0' 表示),则跳过它,不参与遍历。

最终,程序需要输出:

二叉树的高度。 按照中序遍历顺序排列的所有非空节点的值。

输入

n c1 c2 c3 ... cn

(n 是一个正整数,表示二叉树的节点总数。ci 是一个字符,表示第 i 个节点的值。如果值为 '0',表示该节点为空。)

输出

height result

(height 是二叉树的高度。result 是按照中序遍历顺序排列的非空节点值,用空格分隔。)

样例

输入

8
A B C D E F G H

输出

4
H D B E A F C G

输入

5
A B 0 C D

输出

3
C B D A
说明

注意:没有结点时不需要输出二叉树深度

标签
题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 15
通过人数 7
金币数量 2 枚
难度 基础


上一题 下一题