1. 程式人生 > 實用技巧 >《劍指offer》面試題14:樹的子結構

《劍指offer》面試題14:樹的子結構

題目描述

輸入兩棵二叉樹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)