輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)
首先,遍歷a的節點,找到與b的根節點值相同的節點。然後取判斷以這兩個節點開頭的樹,是否相等。
判斷兩個子樹相等的條件也是乙個遞迴。
知道t1為空的時候,就算是判斷完了,此時返回true
bool hassubtree(treenode *t1, treenode *t2)// 下面兩個 只有在ret ==false 的時候才再去遍歷
// 因為ret ==true 的時候是已經找到了子樹,因此就需要在去便利了
if (ret == false)
if (ret == false)
}return ret;
}bool aux(treenode *t1, treenode *t2)
if (t1 == nullptr)
if (t1->val != t2->val)
return aux(t1->right, t2->right) && aux(t1->left, t2->left);
}
劍指offer 18 樹的子結構
題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 思路 用遞迴,遍歷a樹的每乙個節點,然後對於每乙個節點,再判斷是否和a相匹配。coding utf 8 class treenode def init self,x self.val x self.le...
劍指offer18樹的子結構
輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 1 先遞迴判斷a的結點值和b根節點值是否相等,相等再繼續判斷是否可能為子樹。2 判斷是否為子樹時,遞迴判斷左右子樹是否相等。class treenode def init self,x self.val x se...
劍指offer 18 醜數
題目 把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。直觀的想法 從1開始乙個個判斷數字是否為醜數,遇見醜數就記錄下來,直到找到低n個為止,不過這樣計算複雜度太大。class...