Leetcode解題 樹 5 0 0 基礎類

2021-06-29 10:15:46 字數 614 閱讀 7164

與第二章類似,leetcode指定了treenode實現。為了方便後續習題的編寫和測試,建立乙個基礎父類,包含treenode實現,以及create()和print()建立和列印樹的方法。其中create()採用類似「堆」的方式,用陣列表示樹形結構,複習一下,左右子結點就是2*i和2*i+1。而print()方法採用前序遍歷的方式,通過額外乙個引數level確定當前結點的深度,從而列印一些製表符或其他符號來表示出結點的父子關係。兩個核心方法都使用遞迴的方式,實現起來非常簡潔!

注:實現時一切都感覺很良好,結果又犯了乙個低階錯誤。在print()中最初寫成了

while(level--) cout << "\t";

結果忘記level值被修改了(變成了-1),導致後面遞迴呼叫時level+1就始終是0了。

上面的工具函式使用起來很方便,建立乙個solution子類。唯一缺點就是列印時沒有指出子結點到底是左孩子還是右孩子,在部分結點缺失的情況下看起來稍稍有點亂。

Leetcode解題思路

所有簡單題的解題思路。question count the number of prime numbers less than a non negative number,n example input 10output 4explanation there are 4 prime numbers ...

leetcode 解題 加一

給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存乙個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2,1 輸出 4,3,...

leetcode 解題報告(21 28)

題目描述 合併兩個有序鍊錶 解題思路 水題 definition for singly linked list.class listnode object def init self,x self.val x self.next none class solution object defmerge...