定義棧的數(shù)據(jù)結(jié)構(gòu),請(qǐng)?jiān)谠擃愋椭袑?shí)現(xiàn)一個(gè)能夠得到棧中所含最小元素的min函數(shù)(時(shí)間復(fù)雜度應(yīng)為O(1))。 首先我們可以考慮將最小元素儲(chǔ)存在一個(gè)變量...
投稿
定義棧的數(shù)據(jù)結(jié)構(gòu),請(qǐng)?jiān)谠擃愋椭袑?shí)現(xiàn)一個(gè)能夠得到棧中所含最小元素的min函數(shù)(時(shí)間復(fù)雜度應(yīng)為O(1))。 首先我們可以考慮將最小元素儲(chǔ)存在一個(gè)變量...
輸入一個(gè)矩陣,按照從外向里以順時(shí)針的順序依次打印出每一個(gè)數(shù)字,例如,如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11...
操作給定的二叉樹,將其變換為源二叉樹的鏡像。 第一種 使用循環(huán)的思路,將每個(gè)結(jié)點(diǎn)的左右子樹調(diào)換一下即可。使用遞歸收集所有結(jié)點(diǎn)。 第二種 直接使用...
輸入兩棵二叉樹A,B,判斷B是不是A的子結(jié)構(gòu)。(ps:我們約定空樹不是任意一個(gè)樹的子結(jié)構(gòu)) 有關(guān)于各種樹的很多題目都可以用遞歸的思路去解決。
輸入兩個(gè)單調(diào)遞增的鏈表,輸出兩個(gè)鏈表合成后的鏈表,當(dāng)然我們需要合成后的鏈表滿足單調(diào)不減規(guī)則。 第一種 使用一個(gè)dummy結(jié)點(diǎn),然后比較兩個(gè)鏈表的...
輸入一個(gè)鏈表,反轉(zhuǎn)鏈表后,輸出新鏈表的表頭。 通常感覺各種操作鏈表比較亂,其實(shí)理清了也還好。
輸入一個(gè)鏈表,輸出該鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)。 容易想到的方法是遍歷一下,計(jì)算總共有n個(gè)結(jié)點(diǎn),然后倒數(shù)第k個(gè)就可以轉(zhuǎn)化為正數(shù)第n-k+1個(gè)結(jié)點(diǎn)。還可...
輸入一個(gè)整數(shù)數(shù)組,實(shí)現(xiàn)一個(gè)函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序,使得所有的奇數(shù)位于數(shù)組的前半部分,所有的偶數(shù)位于位于數(shù)組的后半部分。 第一種 使用O(n...
給定單向鏈表的頭指針和一個(gè)結(jié)點(diǎn)指針,要求在O(1)時(shí)間內(nèi)刪除該結(jié)點(diǎn)。 刪除結(jié)點(diǎn)分為三種情況 給定結(jié)點(diǎn)是頭結(jié)點(diǎn),則刪除頭結(jié)點(diǎn),返回第二個(gè)結(jié)點(diǎn)。 給...
輸入數(shù)字n,按照順序打印從1到最大的n位十進(jìn)制數(shù)。比如n=3,則打印1到999 最容易想到的是根據(jù)n求出最大的值是多少,然后使用一個(gè)for循環(huán)即...