每年到了秋天树叶渐渐染上鲜艳的颜色,接着就会落到树下来.假如落叶发生在二叉树,那会形成多大的树叶堆呢?我们假设二叉树中的每个节点所落下的叶子的数目等于该节点所储存的值.我们也假设叶子都是垂直落到地面上(真感谢没有风把他们吹的到处都是).最后,我们再假设节点之间水平的距离是以下列方式定义:某个节点到其左子树以及到其右子树的水平距离均为1.以下图来说明: 含有5和含有6的节点位于同一水平位置(当然,他们垂直的位置不同).含有7的节点位于含有5的节点和含有6的节点左边一个位置.而含有3的节点则位于含有…
类似第九题  都是属于比较巧妙的题目  ! 用一个p数组来保存水平值   然后开始built 自然就会按照自左而右的顺序来读取!!!!!!这很重要 #include<bits/stdc++.h> using namespace std; void built (int pos); ]={}; int main() { ; ) { memset(p,,sizeof(p)); p[]+=root; built(-);built(+); ; )t++; printf("Case %d:\n…
题目描述: 原题:https://vjudge.net/problem/UVA-699 题目思路: 1.依旧二叉树的DFS 2.建树过程中开个数组统计 //紫书源代码WA AC代码: #include <iostream> #include <cstring> using namespace std; ; int sum[maxn] ; void buildtree(int val,int p) //建树,p为树根的水平位置 { int vl,vr; ) return ; sum[…
Given two binary trees, write a function to check if they are the same or not. Two binary trees are considered the same if they are structurally identical and the nodes have the same value. Example 1: Input: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] Outpu…
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. Note: A leaf is a node with no children. Example: Given binary tree [3,9,20,null,null,15,7…
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. Note: A leaf is a node with no children. Example: Given binary tree [3,9,20,null,null,15,7…
655. 输出二叉树 在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则: 行数 m 应当等于给定二叉树的高度. 列数 n 应当总是奇数. 根节点的值(以字符串格式给出)应当放在可放置的第一行正中间.根节点所在的行与列会将剩余空间划分为两部分(左下部分和右下部分).你应该将左子树输出在左下部分,右子树输出在右下部分.左下和右下部分应当有相同的大小.即使一个子树为空而另一个非空,你不需要为空的子树输出任何东西,但仍需要为另一个子树留出足够的空间.然而,如果两个子树都为空则不需要为它们留出…
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=640 给一颗二叉树,每个结点都有一个水平位置,左子节点在它左边一个单位,右子节点在右边一个单位.从左向右输出每个水平位置的所有结点的权值之和. 一开始还建了树,后来发现建了树也啥用.哎,到现在为止,我的递归思想还是太弱了. #include<iostream> #include&…
样例输入: 5        //下面n行每行有两个数 2 3    //第i行的两个数,代表编号为i的节点所连接的两个左右儿子的编号. 4 5 0 0    // 0 表示无 0 0 0 0   样例输出: 2 3 #include<iostream> #include<algorithm> #define inf -1 using namespace std; typedef pair <int,int> tp; tp a[1000]; int w[1000]= {…
vector<vector<int>> pathSum(TreeNode* root,int sum){//DFS遍历获取适合路径,当递归到叶子结点且sum为0,表示该路径合适 vector<vector<int>> ans; vector<int> path; helper(root,ans,path,sum); return ans; } void helper(TreeNode* root,vector<vector<int&g…