每年到了秋天树叶渐渐染上鲜艳的颜色,接着就会落到树下来。假如落叶发生在二叉树,那会形成多大的树叶堆呢?
我们假设二叉树中的每个节点所落下的叶子的数目等于该节点所储存的值。我们也假设叶子都是垂直落到地面上(真感谢没有风把他们吹的到处都是)。最后,我们再假设节点之间水平的距离是以下列方式定义:某个节点到其左子树以及到其右子树的水平距离均为1。以下图来说明:

含有5和含有6的节点位于同一水平位置(当然,他们垂直的位置不同)。含有7的节点位于含有5的节点和含有6的节点左边一个位置。而含有3的节点则位于含有5的节点和含有6的节点右边一个位置。当叶子开始落下时,上面的树会在地面上形成3堆树叶。最左边那一堆有7片叶子(从最左边那个节点产生的),再来的一堆含有11片叶子(从含有5及含有6这两个节点产生的),最右边的一堆则含有3片叶子(从最右边那个节点产生的)。
Input
输入含有多组测试数据。
每组测试数据代表一棵树。描述树的方法为给你根(root)的值,然后描述左子树,然后描述右子树。假如一个子树是空的,其值为-1。因此,上图的树可描述为:5 7 -1 6 -1 -1 3 -1 -1。每个真实的节点含有一个大于0的值。
输入的最后一棵树其根的值为-1,代表输入结束(此树不用输出),请参考Sample Input。
Output
对每组测试数据输出3列,第1列输出这是第几组测试数据。第二列输出落叶所形成的树叶堆所含的叶片。由左到右,树叶堆之间以一空格相隔,长度不会超过80个字元。第三列为一空白列。请参考Sample Output。

Sample Input
5 7 -1 6 -1 -1 3 -1 -1
8 2 9 -1 -1 6 5 -1 -1 12 -1
-1 3 7 -1 -1 -1
-1

Sample Output

Case 1:
7 11 3

Case 2:
9 7 21 15

6_10 下落的树叶(UVa699)<二叉树的DFS>的更多相关文章

  1. 6-10 下落的树叶 uva699

    类似第九题  都是属于比较巧妙的题目  ! 用一个p数组来保存水平值   然后开始built 自然就会按照自左而右的顺序来读取!!!!!!这很重要 #include<bits/stdc++.h& ...

  2. 下落的树叶 (The Falling Leaves UVA - 699)

    题目描述: 原题:https://vjudge.net/problem/UVA-699 题目思路: 1.依旧二叉树的DFS 2.建树过程中开个数组统计 //紫书源代码WA AC代码: #include ...

  3. (二叉树 递归 DFS) leetcode 100. Same Tree

    Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...

  4. (二叉树 BFS DFS) leetcode 104. Maximum Depth of Binary Tree

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  5. (二叉树 BFS DFS) leetcode 111. Minimum Depth of Binary Tree

    Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...

  6. Java实现 LeetCode 655 输出二叉树(DFS+二分)

    655. 输出二叉树 在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则: 行数 m 应当等于给定二叉树的高度. 列数 n 应当总是奇数. 根节点的值(以字符串格式给出)应当放在可放置的第一 ...

  7. UVa 699 下落的树叶

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  8. 二叉树(dfs)

    样例输入: 5        //下面n行每行有两个数 2 3    //第i行的两个数,代表编号为i的节点所连接的两个左右儿子的编号. 4 5 0 0    // 0 表示无 0 0 0 0   样 ...

  9. 二叉树路径搜索---DFS 路径和

    vector<vector<int>> pathSum(TreeNode* root,int sum){//DFS遍历获取适合路径,当递归到叶子结点且sum为0,表示该路径合适 ...

随机推荐

  1. docker在windows下和linux下网络底层的一些区别

    windows和linux下的docker运行时的网络结构是有区别的 a.windows下,默认使用Hyper-v创建一个linux虚拟机,承载docker.所以从外向内的路径为: windows - ...

  2. Deepin安装常用软件

    Deepin安装常用软件 安装git sudo apt-get install git sudo是Debian系列以管理员运行的前缀 卸载软件 sudo apt-get remove package_ ...

  3. 算法竞赛入门经典第二版 TeX中的引号 P47

    #include<bits/stdc++.h> using namespace std; int main(){ ; while( (c = getchar()) !=EOF) //get ...

  4. linux学习笔记1:无操作系统时LED驱动

  5. Codeforces Round #603 (Div. 2) A.Sweet Problem

    #include <cstdio> #include <algorithm> using namespace std; int main() { int t; scanf(&q ...

  6. [BZOJ3277/BZOJ3473] 串 - 后缀数组,二分,双指针,ST表,均摊分析

    [BZOJ3277] 串 Description 现在给定你n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串(注意包括本身). Solution 首先将所有串连 ...

  7. xrdp---远程桌面连接

    xrdp is an Open Source Remote desktop Protocol server, which allows you to RDP to your Linux server ...

  8. C分支语句的工程用法

    if语言中零值比较的注意点: -bool型变量应该直接出现于条件中,不要进行比较 -变量和零值比较时,零值应该出现在比较符号左边 -float型变量不能直接进行零值比较,需要定义精度 bool b = ...

  9. 注解 - @Deprecated

    意思是说此方法已过时,过时的原因就是有新的API的类替代了次方法. 这个被划去的方法仍然是可以正常使用的,就是一个提示而已. Java内在的File类中有如下方法 @Deprecated public ...

  10. sql developer执行sql文件

    sql语句可以直接copy到sqlDeveloper的sql window中执行,但是当sql语句过多时,我们可以在command window中来执行sql文件 具体的命令是: start d:\m ...