上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 25 下一页
摘要: 将树序列化为字符串,空节点用符号表示,这样可以唯一的表示一棵树。 用list记录所有子树的序列化,和目标树比较。 LeetCode上还有更好地答案,是递归地判断每个节点的值是不是相等,也很好理解。 上边这种做法是一个大类的做法,就是每个节点都递归地构建一个变量,一般子树问题会经常用到 阅读全文
posted @ 2018-01-31 09:35 stAr_1 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 遍历二叉树,用map记录sum出现的次数,每一个新的节点都统计一次。 遍历完就统计map中出现最多的sum 阅读全文
posted @ 2018-01-31 08:57 stAr_1 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 二叉树变量只是一个地址 上边代码通过地址改变了二叉树,输出为6,但是下边代码却只是传入函数的二叉树变量指向了另一个地址,外界的二叉树变量和二叉树的值没有变,输出还是3 所以想改变二叉树,不能改变二叉树变量,而应该通过二叉树变量t调用val,left,right进行赋值,就可以改变,直接改变t只是让t 阅读全文
posted @ 2018-01-29 20:18 stAr_1 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 核心思想是:序列化树 序列化后,用String可以唯一的代表一棵树,其实就是前序遍历改造一下(空节点用符号表示); 一边序列化,一边用哈希表记录有没有重复的,如果有就添加,注意不能重复添加。 重点就是序列化树,序列化得到的String可以唯一的代表一棵树,这个思想很多题都用到了 并不是只是前序遍历就 阅读全文
posted @ 2018-01-29 16:39 stAr_1 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 由于一般的前序遍历不能唯一的还原出原本你的二叉树,所以要改变一下: 记录二叉树的结构信息,也就是空节点用符号表示 一般的前序遍历只是记录了节点的前后顺序,通过记录空节点,每一层的结构就可以记录下来 解码的时候可以按照前序的顺序依次还原节点。 阅读全文
posted @ 2018-01-29 13:15 stAr_1 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 这道题学到了东西。 对于普通二叉树,前序(后序)+中序可以唯一确定二叉树,前序(后序)包含父子关系信息,中序包含兄弟关系信息 下边是前序+中序确定二叉树 步骤记住两点:所有节点信息都是从前序序列中获得(每次都是根据前序的1st节点信息作为根节点),中序遍历只是用来确定左右子树的子前序的起止点。 然后 阅读全文
posted @ 2018-01-29 12:13 stAr_1 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 弄个flag记录是不是左节点就行 阅读全文
posted @ 2018-01-29 08:38 stAr_1 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 小偷第三题 list的add(index,val)方法相当于插入,要修改某个地方用set,这和map的put不一样,map的put之后就直接覆盖了。 阅读全文
posted @ 2018-01-28 20:41 stAr_1 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 这个题直接遍历会超时。利用了满二叉树的特点,完全二叉树中满二叉树还是有不少的。 对于满二叉树的定义,国内的定义除了每个节点都左右子树外,要求所有叶子节点都在一层上,但是国际上的只要前一个条件就可以。这里说的满二叉树是国内定义的那种。 完全二叉树相对于满二叉树,最后一层可能缺失最右边几个节点。 以后遇 阅读全文
posted @ 2018-01-28 15:26 stAr_1 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 可以把中序遍历的过程融入到next函数中,可以更快,下边的做法是先遍历完,比较垃圾 阅读全文
posted @ 2018-01-28 10:32 stAr_1 阅读(77) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 25 下一页