递归的题分为考察: 分治? 先序? 中序? 先序输入值? 全局辅助值? 全局结果值? 分治法(后序遍历), 先序输入值, 后序结果值 + 叶结点(叶结点也要操作 sum * 10 类似 513. Find Bottom Left Tree Value中的deep ) 这是一道树的题目,一般使用递归来 ...
分类:
其他好文 时间:
2017-08-06 23:13:55
阅读次数:
346
class Solution { public: bool VerifySquenceOfBST(vector sequence) { vector right; vector left; int size = sequence.size(); int last = sequence[size - ... ...
分类:
其他好文 时间:
2017-08-06 20:42:58
阅读次数:
138
题目链接:http://poj.org/problem?id=1330 题意:给定一个n个节点的有根树,以及树中的两个节点u,v,求u,v的最近公共祖先。 数据范围:n [2, 10000] 思路:从树根出发进行后序深度优先遍历,设置vis数组实时记录是否已被访问。 每遍历完一棵子树r,把它并入以r ...
分类:
编程语言 时间:
2017-08-04 19:24:45
阅读次数:
166
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6060 【题目大意】 给一个n个节点的树,要求将2-n号节点分成k部分, 然后将每一部分加上节点1,求每个集合最小斯坦纳树的最大权值和。 【题解】 我们按照后序遍历染色分组,得到的一定是最优分组, 现 ...
分类:
其他好文 时间:
2017-08-04 17:13:37
阅读次数:
156
推断二叉树是不平衡树 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 输入一颗二叉树的根结点, 推断该树是不是平衡二叉树.二叉平衡树: 随意结点的左右子树的深度相差不超过1.使用后序遍历的方式, 而且保存左右子树的深度, 进行比較.代码:/* * ...
分类:
编程语言 时间:
2017-08-03 21:49:06
阅读次数:
148
同 563 Binary Tree Tilt 返回值是局部最大值, 需要全局变量 分治: 后序遍历, 分治法返回到上一层时找到当前层的最大单子路径 . 全局变量看看本层的单子(左右子树)路径diameter 和是否大于全局变量来更新. ...
分类:
其他好文 时间:
2017-08-01 19:08:15
阅读次数:
149
树的题首先找容器(是全局变量还是输入值的递归 ), 再确定是分治(多后序) 还是递归(多前序),确定递归出口: 是否需要是找叶节点(left && right == null) 作正常出口(此时是输入值的递归见 257. Binary Tree Paths), 是否需要改变树的结构(此题借助pre改 ...
分类:
其他好文 时间:
2017-08-01 14:45:10
阅读次数:
167
考察后序建树和递归出口的设置: return helper(nums, 0, nums.length - 1); if (start > end) return null, if (start == end) {T t = new T(nums[end]); root.left = null; ro ...
分类:
其他好文 时间:
2017-08-01 14:17:12
阅读次数:
200
这道题让我们求二叉树的坡度,某个结点的坡度的定义为该结点的左子树之和与右子树之和的差的绝对值,这道题让我们求所有结点的坡度之和. 这道题最好的解法应该是用后序遍历来做,因为后序遍历的顺序是左-右-根,那么就会从叶结点开始处理,这样我们就能很方便的计算结点的累加和,同时也可以很容易的根据子树和来计算t ...
分类:
其他好文 时间:
2017-07-31 22:58:24
阅读次数:
129
二叉树创建遍历规则: 1.先序:根-左-右 2.中序:左-根-右 3.后序:左-右-根 二叉树定义和辅助函数例如以下: struct node { int data; struct node* left; struct node* right; }; void visit(int data) { p ...
分类:
其他好文 时间:
2017-07-31 18:55:44
阅读次数:
193