另一道鍊錶題目

2021-05-25 04:30:15 字數 474 閱讀 2748

有乙個鍊錶,它有next以及child屬性,每乙個child或者next指向的node也有相同的屬性,現在問如何遍歷所有的node。

演算法有幾種option,第一種是用額外儲存空間,另一種是no extra memory。

昨天和同事討論了一下,發現這道題目其實可以用遞迴來做,非常容易,幾句話就寫好了。當然也有非遞迴的方法,到時候會寫上來。

以下是這道題非遞迴的演算法,但是會用到extra memory,其中定義了乙個stack來儲存所有訪問過的節點,等到以後來確定是否有child,如果沒有,就pop掉再也不管了。等到有空會再寫乙個不用extra memory的方法

以下是no extra memory的演算法,感覺挺怪,似乎是可以優化的

還有一道題目是關於陣列,就是有乙個二維陣列,每下面一行的資料都比上面一行的大,每右邊一列的資料總是比左邊一列的大。求給出乙個n,如何定位到這個二維陣列上。

還有乙個井字遊戲的演算法。也是相關於二維陣列的。

鍊錶題目一道

原題鏈結 題意很簡單。給定乙個單鏈表,反轉這個單鏈表,返回翻轉後的頭節點。要將鍊錶翻轉,很容易想到借助棧的後進先出的性質來改變鍊錶的順序。將鍊錶節點順序壓入棧中,鍊錶節點全部進棧以後,取棧頂元素作為新鍊錶的頭節點,然後將元素不斷出棧,每齣棧乙個元素就連線到新鍊錶的末尾。時間複雜度 將鍊錶元素壓入棧中...

一道this的題目

請問下面 中的this值指向的是全域性物件還是物件o?function f return c var o new f console.log o.constructor.name object這裡的this指向全域性物件,因為 c call without new。這裡用正常的方式呼叫的函式 c 所...

一道題目 intel

從序列中找四個四字子串形成十進位制數使之乘積最大 就是求四個最大的?我目前只想到如下辦法。這個題並不是關於複雜的演算法,其本意是要利用並行處理,但目前尚未考慮到 除了其中比較求最小值部分有希望用simd include int g teststring int main void int picke...