《劍指offer》面試題14:樹的子結構
阿新 • • 發佈:2020-08-26
題目描述
輸入兩棵二叉樹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)