1.遍歷一遍,刪除鏈表倒數(shù)第N個(gè)節(jié)點(diǎn)
設(shè)置兩個(gè)相距N的指針,一起移動(dòng)即可
2.翻轉(zhuǎn)鏈表
非遞歸和遞歸都要會(huì)
3.二叉樹(shù)的層次遍歷
需要借助隊(duì)列法牲,輸出層級(jí)則帶層級(jí)信息
4.隊(duì)列實(shí)現(xiàn)棧,棧實(shí)現(xiàn)隊(duì)列
二個(gè)可以實(shí)現(xiàn)
5.找數(shù)組中的最大的前n個(gè)數(shù)
利用最小堆(二叉樹(shù))琼掠,存儲(chǔ)前n個(gè)
6.TwoSum問(wèn)題
使用map存儲(chǔ)差值拒垃,遍歷一遍即可,時(shí)間復(fù)雜度為O(n)
7.二叉樹(shù)的層次遍歷
隊(duì)列 + BFS
8.二叉樹(shù)的層次遍歷二
遞歸+隊(duì)列
9.二叉樹(shù)的序列化和反序列化
序列化層次遍歷瓷蛙,反序列化注意第一次入隊(duì)列悼瓮,隊(duì)列的操作:size(),offer(),poll()
10.二叉樹(shù)的前序遍歷
使用棧,直接存即可艰猬,棧的操作:empty(),pop(),push()
11.二叉樹(shù)的中序遍歷
使用棧横堡,curNode是左子節(jié)點(diǎn)
12.二叉樹(shù)的后序遍歷
超級(jí)復(fù)雜,需要添加preNode的中間變量冠桃,代碼參考:http://www.reibang.com/writer#/notebooks/35280545/notes/43332858
13.有序鏈表合并
一個(gè)head和一個(gè)next命贴,合并即可
14.二叉樹(shù)公共祖先
都用遞歸,注意祖先可以是自己食听,也可以?xún)蓚€(gè)都是自己
15.公共子串
dp問(wèn)題胸蛛,動(dòng)態(tài)規(guī)劃問(wèn)題,轉(zhuǎn)換成二維數(shù)組即可
16.鏈表交叉
取長(zhǎng)度差值樱报,再遍歷葬项,遍歷3次
17.數(shù)組劃分
左右相夾,最好先比較迹蛤,再夾
18.第k大的數(shù)
用快速排序哦
https://blog.csdn.net/A__B__C__/article/details/88288590
19.鏈表排序
歸并排序民珍,merge, split,sort遞歸即可
19.查找旋轉(zhuǎn)數(shù)組
遞歸查找,區(qū)分順序列即可
20.重建二叉樹(shù)
遞歸查找盗飒,區(qū)分順序列即可
https://blog.csdn.net/u013132035/article/details/80519895
21.矩陣最短路徑的和
https://blog.csdn.net/seagal890/article/details/95028066
鏈接代碼有錯(cuò)誤嚷量,不能取斜的指