首先我們介紹二叉樹先序序列化的方式,假設(shè)序列化的結(jié)果字符串為str,初始時(shí)str等于空字符串。先序遍歷二叉樹,如果遇到空節(jié)點(diǎn),就在str的末尾加...
有一棵二叉樹,請(qǐng)?jiān)O(shè)計(jì)一個(gè)算法,按照層次打印這棵二叉樹。給定二叉樹的根結(jié)點(diǎn)root,請(qǐng)返回打印結(jié)果,結(jié)果按照每一層一個(gè)數(shù)組進(jìn)行儲(chǔ)存,所有數(shù)組的順序...
遞歸 比較簡(jiǎn)單,直接看代碼即可. 非遞歸 先序遍歷 申請(qǐng)一個(gè)棧,記為s1,將頭結(jié)點(diǎn)壓棧. 每次從棧頂彈出節(jié)點(diǎn)node,打印node的值,如果no...
有一個(gè)有序數(shù)組arr,其中不含有重復(fù)元素,請(qǐng)找到滿足arr[i]==i條件的最左的位置。如果所有位置上的數(shù)都不滿足條件,返回-1。給定有序數(shù)組a...
給定一棵完全二叉樹的根節(jié)點(diǎn)root,返回這棵樹的節(jié)點(diǎn)個(gè)數(shù)。如果完全二叉樹的節(jié)點(diǎn)數(shù)為N,請(qǐng)實(shí)現(xiàn)時(shí)間復(fù)雜度低于O(N)的解法。給定樹的根結(jié)點(diǎn)root...
如果更快的求一個(gè)整數(shù)k的n次方。如果兩個(gè)整數(shù)相乘并得到結(jié)果的時(shí)間復(fù)雜度為O(1),得到整數(shù)k的N次方的過(guò)程請(qǐng)實(shí)現(xiàn)時(shí)間復(fù)雜度為O(logN)的方法...
定義局部最小的概念。arr長(zhǎng)度為1時(shí),arr[0]是局部最小。arr的長(zhǎng)度為N(N>1)時(shí),如果arr[0]<arr[1],那么arr[0]是局...
將一個(gè)非遞減序列的某一處切一刀,再把前半段序列放到后半段序列的后面,這樣組成的新序列叫做“旋轉(zhuǎn)數(shù)組”。要求獲取一個(gè)旋轉(zhuǎn)數(shù)組的最小值。給定數(shù)組ar...
對(duì)于一個(gè)有序數(shù)組arr,再給定一個(gè)整數(shù)num,請(qǐng)?jiān)赼rr中找到num這個(gè)數(shù)出現(xiàn)的最左邊的位置。給定一個(gè)數(shù)組arr及它的大小n,同時(shí)給定num。請(qǐng)...