劍指offer 第三波

2021-09-14 04:40:20 字數 668 閱讀 1408

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)

解題思路:有兩點需要注意的,一是可以再新增乙個函式,該函式用於判斷兩子樹以當前點作為根節點是否相互包含。另外需要注意的是,遞迴的部分可以做一點優化,如果左子樹已經包含了proot2,則可以不用再判斷右子樹而直接得出結果。

class solution 

else

return res;

}bool equaltree(treenode* proot1, treenode* proot2)

else res = false;

return res;

}};

操作給定的二叉樹,將其變換為源二叉樹的映象。

二叉樹的映象定義:源二叉樹 

8/ \

6 10

/ \ / \

5 7 9 11

映象二叉樹

8/ \

10 6

/ \ / \

11 9 7 5

解題思路:比較常規的可以用遞迴思想解決的問題,但是要注意二叉樹不一定每個子節點都有兩個字樹或者沒有,也有可能只有乙個子樹。

class solution 

};

劍指Offer第三第四道題

第三題 輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。思路 始終從列表的第一項插入資料。coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回從尾部到頭部的列表值序列,例如 1,2,...

劍指offer 費波納數列

費波納數列 n 0,f 0 0 n 1,f 1 1 n 1,f n f n 1 f n 2 這裡面一定要注意的是n 0,所以需要判斷若n 0 則直接return none.處理辦法 第一種很自然的想到遞迴 def fibonacci n 其實沒必要關心n 0,因為此處測試例項這裡沒有n 0的測試例子...

《劍指offer》筆記 第三章 3

面試題21 調整陣列順序使奇數字於偶數之前 實現乙個函式,輸入乙個整數陣列,調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分 測試用例 功能測試 奇數偶數交替出現 全是奇數 偶數 所有偶數在奇數前 奇數在偶數前 特殊輸入 null 只有乙個數字的陣列 分析 1.維護...