详解-03树2 List Leaves

题目来源:
中国大学MOOC-陈越、何钦铭-数据结构

题目详情:

译文:
给定一棵树,按照从上到下,从左到右的顺序列出所有叶结点。

输入格式:
每个输入文件包含一个测试用例。 对于每种情况,第一行给出一个正整数 N ( ≤ 10 ) N(≤10) N10,它是树中节点的总数。节点从 0 0 0 N − 1 N-1 N1编号。 然后跟随 N N N行,每行对应一个节点,并给出该节点左右子节点的索引。 如果孩子不存在,将在该位置放置一个“-”。 任何一对孩子都用空格隔开。

输出格式:
对于每个测试用例,按从上到下,从左到右的顺序在一行中打印所有叶结点的索引。 相邻数字之间必须恰好有一个空格,行尾不得有多余的空格。

输入样例:

8
1 -
- -
0 -
2 7
- -
- -
5 -
4 6

输出样例:

4 1 5

解题思路:静态链表建树+层序遍历输出
关于本题,整体来看大致分以下两个步骤:

  1. 表示二叉树
  2. 创建二叉树
  3. 遍历二叉树输出叶结点

接下来便一步步的分析。

  1. 表示二叉树
    由于本题的输入与上一篇博文中介绍题目的输入有异曲同工之处,因此表示二叉树和创建二叉树的方法可以借鉴上一题,即用静态链表表示。
    二叉树的常用表示方法是用动态链表来表示,如下图:

    val

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值