Vmorish

—— Anything is possible

剑指offer——二叉搜索树与双向链表

题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。分析:这个题本质上其实是对二叉搜索树的中序遍历,但是要对结点的指针稍作改动。1.先遍历左子树,将其构造成双链表,并返回链表的‘根’结点;2.得到左子树双链表的最后一个结点;3...

2018-03-05 10:48:22

阅读数:36

评论数:0

剑指offer——包含min函数的栈

题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。分析:定义一个辅助栈,保存对应元素存在时当前栈中的最小元素,即可在O(1)的时间内找到最小的数。参考代码:class Solution { public: void push(int value) { ...

2018-02-25 14:38:13

阅读数:24

评论数:0

剑指offer——数组中出现次数超过一半的数字

题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。分析:        第一种思路,把序列从小到大排个序,然后相同的数字一定是连...

2018-02-22 20:52:57

阅读数:51

评论数:0

剑指offer——重建二叉树

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析:先搞清楚二叉树的四种遍历方式(先序遍历:根左右...

2018-02-19 22:16:20

阅读数:44

评论数:0

剑指offer——不用加减乘除做加法

题意:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 分析:之前自己手动yy了一下,直接用二进制进行位运算,然后没考虑负数,直接WA,接着仔细分析,数分四种情况(a>0,b>0;a>=0,b0;a 参考代码: class Solution {...

2017-12-28 17:43:45

阅读数:77

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭