这是一道好题,思路虽然有,但是提交之后总是有数据过不了,又按照数据改改改,最后代码都没法看了。收到的教训是如果必须为自己的代码加上很多很多特殊的限定,来过一些特殊的数据的话,说明代码本身有很大的漏洞。
这道题,我想到了要用两个指针保存乱序的节点,甚至想到了用一个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
二叉树前序、中序和后序的遍历方法(递归、用栈和使用线索化)...
分类:
其他好文 时间:
2014-05-08 17:25:55
阅读次数:
341
2014年5月7号下午1点半进行的vmware笔试。笔试内容包括不定项选择题20个,问答题5个,编程2选1一个。编程题:1.
前序遍历一颗二叉树 2. 判断一个字符串中是否存在回文,存在则输出;问答题:1. js的标准模式和quire模式 2. 链接web、邮件、图片的区别 3....
分类:
其他好文 时间:
2014-05-08 14:04:53
阅读次数:
274
好,二叉搜索树粉末登场,有关他的问题有这么几个,给你一个n,怎样求所有的n个节点的二叉搜索树个数?能不能把所有的这些二叉搜索树打印出来?
这道题倒不用考虑这么多,直接转就行了,我用的思想是分治,每次找到一半的位置,分离出中间节点,作为新子树的根节点,然后递归构造前半部分和后半部分。
class Solution {
public:
TreeNode *sortedListToBST(L...
分类:
其他好文 时间:
2014-05-08 11:07:14
阅读次数:
266
二叉平衡树好火啊,几乎每个公司的笔试题里都有它,考了好多次我都不会,挂笔试很有可能就是因为它,还有一个它的同伙叫二叉搜索树,貌似人气比它还要高一些。二叉平衡树是什么样的树呢,是每个节点的左右子树高度相差绝对值都不超过1。好,你说你终于回了,这不很简单吗,求一下根节点的左右字数高度,如果满足,他就是,否则就不是嘛。不是啊亲,要求是所有节点都满足这个条件,判断的时候必须每个节点都验证的!
扯了这么长...
分类:
其他好文 时间:
2014-05-08 11:05:26
阅读次数:
286
要求:输入一棵二叉排序树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建新的结点,只能调整树中结点的指针的指向。方法一:我们借助一个容器来顺序存储结点的指针,然后改变指针的指向。方法二:我们边遍历边改变指针的指向。
分类:
其他好文 时间:
2014-05-08 08:59:21
阅读次数:
349
这道题之前没见过,一上来还真不知道怎么做。问题的限制条件,树是完全二叉树其实并不是关键,只不过是一个简化的条件而已。那关键是什么呢?如何从当前节点跳到下一个开始的节点。我的做法是,每次从一层的最左边节点开始,一层一层的走。其实只有两种形式的next指针需要我们来更新,第一种,同一个节点的左右孩子,第二种,父亲相邻时,左边父亲的右孩子和右边父亲的左孩子之间。完全二叉树的简化就体现在更新的过程,因为完...
分类:
其他好文 时间:
2014-05-08 04:02:43
阅读次数:
324
public class Tree { TreeNode last = null; TreeNode
root = null; public Tree(int value){ root = createNode(value); } ...
分类:
其他好文 时间:
2014-05-08 01:04:08
阅读次数:
349