剑指offer 26. 数的子结构
题目:输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) 中等
B是A的子结构, 即 A中有出现和B相同的结构和节点值。
方法:递归 时间复杂度O(n) 空间复杂度O(n)
该题包含两个过程,一是遍历树A找与B相同的首个节点,二是从相同节点开始一起向下判断
def isSubStructure(self, A, B): """ :type A: TreeNode :type B: TreeNode :rtype: bool """ def recur(A,B): if B is None: return True if A is None or A.val != B.val: return False return recur(A.left,B.left) and recur(A.right,B.right) return bool(A and B) and (recur(A,B) or self.isSubStructure(A.left,B) or self.isSubStructure(A.right,B))

浙公网安备 33010602011771号