引言 自己觉得对二叉树了解的不是很多,所以想专门练习一下这方面的问题,剑指Offer中有一道题是将二叉搜索树转换为双向链表,开始的时候照着书上的思路去做,最后发现问…
O(1)时间删除链表中的节点 13
将当下一个节点的data和nextNode拷贝到当前节点,即完成删除 但不能用deleteNode=deleteNode.nextNode 这样是让指针循环下移 &…
打印1到最大的n位数 12
两种解法,一种递归,一种判断该数加1是否最高位进1 第二种较简单 主要两个函数,一个是打印数字,要求判断该数字是否是第一个不为零的数字,然后后面的依次打出即可 &n…
自己实现一个数的整数次方 11
注意输入的判断,多写几个if语句判断是否满足输入数据的条件 另外exp为负的时候,输入的base变为1.0/base而不是1/base 所以返回值要设置为doubl…
二进制中1的个数 10
三种方法 第一种不断除2 除2可以用右移方式,但这种方式对于负数的话容易造成左边全为1,进入死循环 可以判断如果输入负数的话,取他的相反…
旋转数组中的最小值 8
基于二分法 index1为首,index2为尾,indexMid指向中间 当Number[index1]大于等于Number[index2]的条件满足时  …
两个栈实现队列 7
主要实现从尾部添加字符和从头部删除字符 从尾部添加直接push进一个stack1即可 从头部删除,需要先将stack1中的字符压入stack2,然后从stack2弹…
从尾到头打印链表 5
利用栈,倒序都可以用栈解决 先将数据一个一个压入栈 然后再一个一个弹出 另外还有一种方法是利用递归,递归其实跟栈类似 &n…
替换空格 4
先遍历每个字符统计空格数 :String.charAt() 根据空格数计算新的长度 :newLength=oriLength+2*NumOfBlank 新建一个ne…
二维数组中查找 3
先判断数组是否为空,为空返回false 不为空进入循环 获得矩阵的行数:rows=matrix.length 获得矩阵的列数:columns=matrix[0].l…
(atoi)String to Integer 49
corner case的处理 整数一般考虑两点:一点是符号,另外一点是越界 首先去掉多余的空格字符 然后读符号,可能是正号,也可能是负号…
利用构造函数求1到n的和 46
class ConSum{ private: static int n; static int sum; public: ConSum(){++n;sum+n} static int getSum(){return su…