輸入兩棵二叉樹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.維護...