2017年3月6日
摘要: 二叉树中和为某一值的路径 题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路 1. 前序遍历二叉树,每次更新当前路径的和curtSum; 2. 判断当前结点是否是叶子结点,以及curtSum是否 阅读全文
posted @ 2017-03-06 10:48 echoVic 阅读(907) 评论(0) 推荐(0) 编辑
  2017年3月2日
摘要: 二叉搜索树的后序遍历序列 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 相关知识 二叉查找树(Binary Search Tree) ,(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下 阅读全文
posted @ 2017-03-02 11:20 echoVic 阅读(391) 评论(0) 推荐(0) 编辑
  2017年3月1日
摘要: 从上往下打印二叉树 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路 1. 借助两个辅助队列,一个用来存放结点,一个用来存放结点值; 2. 先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子节点加入到队列中来。 实现代码 阅读全文
posted @ 2017-03-01 09:38 echoVic 阅读(424) 评论(0) 推荐(0) 编辑
  2017年2月28日
摘要: 栈的压入、弹出序列 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意 阅读全文
posted @ 2017-02-28 11:01 echoVic 阅读(420) 评论(0) 推荐(0) 编辑
  2017年2月27日
摘要: 包含min函数的栈 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 实现代码 相关知识 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压 阅读全文
posted @ 2017-02-27 10:26 echoVic 阅读(343) 评论(0) 推荐(0) 编辑
  2017年2月26日
摘要: 顺时针打印矩阵 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路 1. 阅读全文
posted @ 2017-02-26 23:21 echoVic 阅读(1497) 评论(0) 推荐(0) 编辑
  2017年2月24日
摘要: 二叉树的镜像 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 相关知识 二叉树的镜像定义: 源二叉树 镜像二叉树 思路 1. 有关二叉树的算法问题,一般都可以通过递归来解决。那么写一个正确的递归程序,首先一定要分析正确递归结束的条件。 2. 先前序遍历这棵树的每个结点,如果遍历到的结点有子结 阅读全文
posted @ 2017-02-24 09:35 echoVic 阅读(463) 评论(0) 推荐(0) 编辑
  2017年2月23日
摘要: 树的子结构 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 相关知识 二叉树子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。例如: 由于A中有一部分子树的结构和B是一样的,因此B是A的子结构。 思路 1. 有关二叉树的算法问题 阅读全文
posted @ 2017-02-23 09:33 echoVic 阅读(857) 评论(0) 推荐(0) 编辑
  2017年2月22日
摘要: 反转链表 题目描述 输入一个链表,反转链表后,输出链表的所有元素。 思路 (本题链表默认无头结点) 1. pHead为当前结点,如果当前结点为空的话,直接返回; 2. pHead为当前结点,pre为当前结点的前一个结点,next为当前结点的下一个结点; 3. 需要完成的目标是将pre pHead n 阅读全文
posted @ 2017-02-22 19:56 echoVic 阅读(1058) 评论(0) 推荐(0) 编辑
摘要: 合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路 1. 如果pHead1和pHead2中有一个为空,则result是另一个; 2. 如果pHead1的头结点值小于pHead2,那么result的头结点为pHead1的头结 阅读全文
posted @ 2017-02-22 19:56 echoVic 阅读(298) 评论(0) 推荐(0) 编辑