秒西

  • 让标题抖起来

  • 首页

  • 分类

  • 归档

  • 标签

  • 留言

  • 搜索

二叉搜索树与双向链表

发表于 2017-05-01 | 分类于 剑指offer
问题描述输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向 思路分析由于是二叉排序树,其左子树结点值小于根结点,右子树大于根节点,可以利用中序遍历,即先左孩子递归,找到树中最小的 ...
阅读全文 »

复杂链表的复制

发表于 2017-04-30 | 分类于 剑指offer
问题描述输入一个复杂链表(每个节点中有结点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点) 思路分析很自然的第一个想法就是采取分治法,首先复制原来链表的结点,把每个复制的结点都链在原结点后面,接下来,设置复制节点的特殊 ...
阅读全文 »

二叉树中和为某一值的所有路径

发表于 2017-04-29 | 分类于 剑指offer
问题描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为整数的所有路径。路径定义为从树的根结点开始往下一直到叶子结点所经过的结点形成一条路径 思路分析从问题描述知道,前序遍历符合从根结点遍历,所有可用此方法遍历,同时可以设置两个集合,一 ...
阅读全文 »

二叉树的后续遍历序列

发表于 2017-04-28 | 分类于 剑指offer
问题描述输入一个整数数组,判断该数组是不是某二叉搜索树的后续遍历的结果。如果是,则输出true,否则返回false 思路分析如{5,7,6,9,11,10,8},根据二叉排序树的后续遍历特点,首先知道最后一个数是根结点,然后让前面的数与它比 ...
阅读全文 »

包含min函数的栈

发表于 2017-04-27 | 分类于 剑指offer
问题描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。调用min、push、pop的时间复杂度都是O(1) 思路分析可以构造一个辅助栈,该栈里只放每次的最小栈顶元素集合,比如刚开始往栈里放3,4;则辅助栈里存放的是 ...
阅读全文 »

从上到下打印二叉树

发表于 2017-04-26 | 分类于 剑指offer
问题描述不分行的从上到下打印二叉树的每个节点,同一层的结点按照从左到右的顺序打印 思路分析其实也就是树的层次遍历,而层次遍历的通法就是构造一个队列或者其他容器集合,按照从上到下依次加进结点,每次删除一个结点,就把它的左右孩子结点加入队列,依 ...
阅读全文 »

二叉树的镜像

发表于 2017-04-25 | 分类于 剑指offer
问题描述请完成一个函数,输入一颗二叉树,该函数输出它的镜像。 思路分析镜像也就是将每个子节点的左右子节点交换,可以先判断根结点是否有左右子树,然后依次交换,然后在利用递归的思想继续交换 码上有戏12345678910111213141516 ...
阅读全文 »

树的子结构

发表于 2017-04-24 | 分类于 剑指offer
问题描述输入两颗二叉树A,B,判断B是不是A的子结构 思路分析要在原二叉树中查找是否具有某棵子树,只需要判断每个节点是否都在二叉树中是否出现即可。所以需要先判断头结点,只有头结点符合要求才继续比较其子树是否符合,然后在从左右子树依次比较,如 ...
阅读全文 »

合并两个排序的链表

发表于 2017-04-23 | 分类于 剑指offer
问题描述输入两个单调递增的链表,输出两个链表合成后的链表,并且合并后的链表仍然是单调递增的 思路分析由于两个链表都是排序的,所以可先比较两个链表的头结点,从而确定合并后的第一个结点,之后在依次比较第二个结点,作为新的第二个结点,依次类推 码 ...
阅读全文 »

反转链表

发表于 2017-04-22 | 分类于 剑指offer
问题描述输入一个链表,反转链表后,输出链表的头结点 思路分析当我们遍历一次后,也就是遍历到尾节点时,其实也就完成了反转,在此过程中需要三个指针,一个指向当前遍历的前驱,由于反转,另一个是当前指针,还有一个是当前遍历的下一个指针,通过不断改变 ...
阅读全文 »
1…111213…19

I believe my dream will come true

184 日志
25 分类
30 标签
微型论坛 Weixin
0%
© 2016 - 2019