輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)
這個題目很明顯可以使用遞迴來做,我們只需要判斷其子數的結構是不是相同的就行了,**如下:
# -*- coding:utf-8 -*-# class treenode:
# def __init__(self, x):
# self.val = x
# self.left = none
# self.right = none
class solution:
def hassubtree(self, proot1, proot2):
# write code here
if proot1 == none or proot2 == none:
return false
return self.issubtree(proot1, proot2)
def issubtree(self, p1, p2):
if p2 == none:
return true
if p1 == none:
return p1 == p2
res = false
if p1.val == p2.val:
res = self.issubtree(p1.left, p2.left) and self.issubtree(p1.right, p2.right)
return res or self.issubtree(p1.left, p2) or self.issubtree(p1.right, p2)
面試題 劍指offer14
題目 調整陣列資料使奇數全部在偶數前面 解法一 void oddnumberfront1 int arr,int length int first int last first arr last arr length 1 while first while first if first 這種解法比較...
劍指Offer 面試題18 樹的子結構
樹的子結構 輸入兩顆二叉樹a和b,判斷b是不是a的子結構。例如 樹a 樹b 8 8 87 9 292 47過程總結 在樹a中查詢與樹b中根節點一樣的值,然後遞迴比較兩者的左子樹和右子樹是否相同 遞迴出口是 樹b的左右子樹為空 這道題目有兩個遞迴 主遞迴 用於確定樹a中的那個根節點與樹b的根節點進行比...
劍指offer 面試題26 樹的子結構
完整 位址 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 找到樹a中與樹b根節點值相同的節點,設樹a中該節點為subroot 在遍歷樹b的同時,遍歷subroot,如果遍歷完樹b發現subroot中沒有與b不一致的地方,則b是a的子結構 遍歷樹b時,發現su...