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. 從上到下打印二叉樹
不分行打印,類似於隊列,先進先出。
注:備忘。