必须承认,一开始这道题我是不会做的,因为我心目中的树遍历只能用一个节点发起,多么天真而无知。
我想不通怎样同时遍历两颗子树,因为根节点一定是一个啊。可是,作为对称轴上的它,从一开始就不应该被考虑,他的左右孩子,不是很自然的形成了两个遍历的入口吗?可见无知是多么的可怕。
bool helper(TreeNode *left, TreeNode *right){
if(left == NU...
分类:
其他好文 时间:
2014-05-09 02:18:26
阅读次数:
223
这是一道好题,思路虽然有,但是提交之后总是有数据过不了,又按照数据改改改,最后代码都没法看了。收到的教训是如果必须为自己的代码加上很多很多特殊的限定,来过一些特殊的数据的话,说明代码本身有很大的漏洞。
这道题,我想到了要用两个指针保存乱序的节点,甚至想到了用一个pre指针来保存前面一个节点,但是问题出在哪里呢?我觉得应该是自己对树的遍历理解的不够深刻。既然知道了二叉搜索树一定是用中序遍历的,那么...
分类:
其他好文 时间:
2014-05-09 01:54:42
阅读次数:
250
有了上面的教训,这道题就简单多了,什么时候该更新pre是明确的了,倒是有个细节,二叉搜索树中是不允许有相等节点的,所以题目的要求用黑体字标明了。写的时候注意就可以了。
class Solution {
public:
TreeNode *pre = NULL;
bool isValidBST(TreeNode *root) {
if(root == NULL) ...
分类:
其他好文 时间:
2014-05-09 01:33:43
阅读次数:
269
这道题是为数不多的感觉在读本科的时候见过的问题。人工构造的过程是怎样呢,后续遍历最后一个节点一定是整棵树的根节点,从中序遍历中查找到这个元素,就可以把树分为两颗子树,这个元素左侧的递归构造左子树,右侧的递归构造右子树,元素本身分配空间,作为根节点。
于set和map容器不同的是,vector容器不含find的成员函数,应该用stl的库函数,好在返回的也是迭代器,而vector的迭代器之间是可以做...
分类:
其他好文 时间:
2014-05-09 01:23:38
阅读次数:
275
【JavaScript】====名词解释====a.DOM介绍:Document Object
Model(文本对象模型)D:文档 – html 文档 或 xml 文档O:对象 – document 对象的属性和方法M:模型DOM
是针对xml(html)的基于树的API。DOM树:节点(node)...
分类:
编程语言 时间:
2014-05-09 00:03:30
阅读次数:
462
虎居O2O模式弥补卫浴建材电商B2C现场体验短板针对传统卫浴电子商务现状,某网站随机对若干位80后消费者进行调查,对于是否愿意进行卫浴建材的网上购买,他们竟然都一致表虎居O2O模式弥补卫浴建材电商B2C现场体验短板针对传统卫浴电子商务现状,某网站随机对若干位80后消费者进行调查,对于是否愿意进行卫浴...
分类:
其他好文 时间:
2014-05-08 23:34:20
阅读次数:
321
划分树模板题,敲上模板就ok了。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MP make_pair
#define LL long long
#define CLR(a, b) memset(a, b, sizeof(a))
using n...
分类:
其他好文 时间:
2014-05-08 17:29:39
阅读次数:
398
二叉树前序、中序和后序的遍历方法(递归、用栈和使用线索化)...
分类:
其他好文 时间:
2014-05-08 17:25:55
阅读次数:
341
先亮出题目:
一,背包问题 及 回溯法解其问题的伪代码
二,赋值后的具体实例
三,如何看懂伪代码
(1)真正了解回溯法的核心思想
我总结的回溯法解题步骤:
先找出第一个解
回溯
(2)回溯法核心思想 + 伪代码 + 图9-5 树结构来分析
四,伪代码代入值解析
核心:先找到第一个解,再回溯。...
分类:
其他好文 时间:
2014-05-08 16:16:30
阅读次数:
386