劍指offer 樹的子結構17

2022-08-23 21:21:07 字數 1005 閱讀 4249

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

class

solution:

defissubtree(self,proot1,proot2):

#如果樹a空了,樹b沒空則匹配失敗

if proot1==none and proot2 is

notnone:

return

false

#如果樹b空了,匹配完成

if proot2==none:

return

true

#如果不相等,匹配失敗

ifnot proot1.val==proot2.val:

return

false

#繼續匹配

return self.issubtree(proot1.left,proot2.left) and

self.issubtree(proot1.right,proot2.right)

defhassubtree(self, proot1, proot2):

#write code here

result=false

if proot1 is

not none and proot2 is

notnone:

#如果發現根節點,則從此根節點開始判斷是否匹配

if proot1.val==proot2.val:

result=self.issubtree(proot1,proot2)

#如果沒有找到,則用左孩子進行匹配

ifnot

result:

result=self.hassubtree(proot1.left, proot2)

#如果沒有找到,則用右孩子進行匹配

ifnot

result:

result=self.hassubtree(proot1.right, proot2)

return result

劍指offer 17 樹的子結構

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 這是典型二叉樹遞迴問題。倆顆樹都不為空時,如果根節點相同,那麼判斷root2是不是root1的子樹,如果不是,那麼判斷root2是不是root1左子樹的子樹,如果還不是,那麼判斷root2是不是root1右子樹的...

劍指Offer (17)樹的子結構

題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 實現如下 分兩步 第一步 尋找與b樹根節點val相等的a樹節點。如果找到進入第二步,否則繼續尋找,直到找完a樹 第二步 以找的節點作為a樹子樹的根節點,同時遍歷兩棵樹,判斷是否所有節點都相同 特殊情況 ...

劍指offer(17)樹的子結構

19.1.11 題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 思修很簡單 遍歷a樹,每個a節點與b對比,對比函式為solution。如下 function treenode x function hassubtree proot1,proot2 r...