摘要: 二叉树变量只是一个地址 上边代码通过地址改变了二叉树,输出为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) 编辑