摘要: 非常简单的一个题,和path sum非常类似。 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *rig... 阅读全文
posted @ 2014-07-05 17:03 poemqiong 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 很简单的一道题,判断和为sum的路径是否存在。结果WA了两次,一次是由于没有考虑清楚深搜停止的条件,另外一次是由于没有考虑到Path必须是从root到leaf的。 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * ... 阅读全文
posted @ 2014-07-05 16:39 poemqiong 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 把一个排好序的vector转换为一颗二分查找树。很简单的题目,递归即可,保证边界不要出错。 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; ... 阅读全文
posted @ 2014-07-05 16:00 poemqiong 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 判断一颗树是不是二分查找树,非常经典基础的一个算法。我很久之前第一次做的时候,是先求出来了树的前序遍历的结果,然后判断这个数组排序后是否和排序前相同,还要判断重复虾米的,很纠结的一种做法。后来思考了一下怎么用递归的思路做,觉得应该根据定义返回两个子树的最大值和最小值,写了一会代码,发现好麻烦,不太对... 阅读全文
posted @ 2014-07-05 15:26 poemqiong 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 按照前序遍历的顺序把树用right连起来。本来想了半天,一点思路都没有,总觉得Inplace的解法一般都非常巧妙。后来我突发灵感,决定用一个变量记录当前访问到哪个点,真是太机智了~~ 1 /** 2 * Definition for binary tree 3 * struct TreeNode... 阅读全文
posted @ 2014-07-05 14:24 poemqiong 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 找书中权值和最大的路径,至少包含一个点。有点类似LCA(最近公共祖先),树的问题关键是如何划分子问题,然后递归求解。想到了可以返回两种结果,一个是单独路径的最大和,一种是子树的最大和,然后在求解的过程中不断的更新答案。 1 /** 2 * Definition for binary tree 3 ... 阅读全文
posted @ 2014-07-05 13:08 poemqiong 阅读(150) 评论(0) 推荐(0) 编辑