20. 表示数值的字符串**程序写的很好
有固定的模板,先是【正负号】【数字】【.】【数字】【e】【正负号】【数字】,其中正负号可以省略。
程序思路,输入字符串
判断正负号
判断数字
如果有点,判断后面是否是数字(.前后可以没有数字)
如果是e,判断是否有数字(e前后必须跟数字)
21. 调整数组顺序使奇数位于偶数前面**程序号
快速排序,两个指针,一前一后,查到就交换,也可以用我总结的排序方法里的快速排序实现。
22. 链表中倒数第k个节点
O(1)的方法,两个指针,从头相差k个节点,第一个到null的时候,第二个就到了倒数第k个。
23. 链表中环的入口节点
它分成了三步走,两个指针,一个快一个慢,慢的和快的相遇处在环内,接着循环一遍,查环大小,最后两个指针,相差环长,一步步向前,相遇处即环入口。
24. 反转链表
三个节点,pre,cur,next,两个节点会断链,注意头结点为空的情况。
25. 合并连个排序的链表
递归,每次取一个头。
26. 判断一个树是不是另一个的子结构**
先查匹配的root节点,查到后再递归查其他的。
double类型不能直接比较相等与否,精度不同,如果需要写,例子函数如下。
27. 二叉树的镜像
递归,左右交换
28. 对称的二叉树**代码有点意思
判断是否对称,前序遍历,先左后右,先右后左,两个得到的结果相同
29. 顺时针打印矩阵
这个题作者没考虑前面,他仅考虑了方形的情况。
30. 包含min函数的栈
这个他写的也不好,会出现错误。
31. 栈的压入、弹出序列**程序写的好
判断栈的顺序是否正确。
代码流程
栈空或者栈顶和弹出的序列不同,压入。
判断栈顶和弹出序列,若不同,跳出,相同,下一个。
最后判断栈是否空,弹出序列是否对比完,返回结果。
32. 从上到下打印二叉树
不分行打印,类似于队列,先进先出。
注:备忘。