• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






cjmandlulu

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2014年6月23日

把二叉排序树转换成双向链表
摘要: 这个题的意思就是将一个二叉搜索树转换成一个双向链表,比如 10 6 14 4 8 12 16 这样一个二叉搜索树,那么转换成双向链表之后的序列就是4,6,8,10,12,14,16。 很明显,采用的应该是类似中序遍历的方式进行树的遍历,同时保存已经访问的节... 阅读全文
posted @ 2014-06-23 21:08 cjmandlulu 阅读(332) 评论(0) 推荐(0)
 
复杂链表的复制问题
摘要: 这个题的意思从题目中就能体现的很清楚了,就是给定一个比较复杂的链表,复制这个链表。 复杂的链表通常不仅仅包含一个指向next的指针,可能还有其他指针指向其他的链表元素。 那么一般来说,在复制的时候,都应该首先创建结点,将链表按照next的方式连接起来,然后再遍历原链表,复制链表中的相应节点指... 阅读全文
posted @ 2014-06-23 19:51 cjmandlulu 阅读(159) 评论(0) 推荐(0)
 
二叉树中和为某一值的路径
摘要: 这个题的意思就是在二叉排序树中找到所有使得和为指定值的路径,需要注意的一点是,树中的路径指的是从树的根节点到任一叶子结点的路径,也就是说如果这条路径的结尾不是叶子节点,即使值等于给定值,也是不存在路径的,这个题从看到题意的第一反应就是利用回溯,首先深度遍历一条路径,如果该路径不符合条件,则回溯到... 阅读全文
posted @ 2014-06-23 17:08 cjmandlulu 阅读(166) 评论(0) 推荐(0)
 
判断序列是否是二叉树的后序遍历序列
摘要: 这个题的意思就是给定一个序列,判断这个序列是否是某个二叉排序树的后序遍历序列,这个算法的方法主要是根据后序遍历的性质,首先这个序列的最后一个元素肯定是根元素,然后将序列从左往右遍历,找到第一个大于根元素的点,这个点左边的肯定是当前根的左子树,这个点的右边肯定是当前根的右子树,继续向后遍历,看右子... 阅读全文
posted @ 2014-06-23 16:28 cjmandlulu 阅读(307) 评论(0) 推荐(0)
 
判断两个序列的关系
摘要: 这个题的意思是给定两个序列,判断一个序列是否是另一个序列的压栈的弹出序列。那么这个题的思想就是以弹出序列的顺序进行往后查找,如果当前压入栈的棧顶元素并不等于当前弹出值,就把压入栈的序列中后序的数值不断的压入栈,直到相等,然后移动弹出栈的指针以及从栈中弹出当前的压入值,如此循环往复。如果到最后压入... 阅读全文
posted @ 2014-06-23 15:51 cjmandlulu 阅读(515) 评论(0) 推荐(0)
 
判断一个树是否是另一个树的子结构
摘要: 这个题目的方法就是在根树结构中不断查找与子树结构相同的起始根节点,如果找到则再比较这个根的左右子树是否也相等,如果递归到子树为空了,就返回true,否则均返回false。具体代码如下: 1 package test; 2 3 class TreeNode{ 4 int val; 5... 阅读全文
posted @ 2014-06-23 10:25 cjmandlulu 阅读(200) 评论(0) 推荐(0)