1. 程式人生 > >劍指offer_第17題_樹的子結構_Python

劍指offer_第17題_樹的子結構_Python

題目描述

  • 輸入兩棵二叉樹A,B
  • 判斷B是不是A的子結構。
  • 其中空樹不是任意一個樹的子結構
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

解題思路

思路1

class Solution:
    def HasSubtree(self, pRoot1, pRoot2):
        if pRoot1 == None or pRoot2 == None:
            return False
return self.is_Subtree(pRoot1,pRoot2) or self.HasSubtree(pRoot1.left,pRoot2) or self.HasSubtree(pRoot1.right,pRoot2) def is_Subtree(self,pRoot1,pRoot2): if pRoot2 == None: return True elif pRoot1 == None or pRoot1.val != pRoot2.val: return False return
self.is_Subtree(pRoot1.left,pRoot2.left) and self.is_Subtree(pRoot1.right,pRoot2.right)