参考的是牛客网别人的代码,总结一下思路:
- 只要有一棵二叉树是空树,就return flase
- 写一个is_subtree(A,B)的函数,用来判断是不是子树,此函数的判断根据是:
- 若根节点不同,则不是子树
- 若A树已被遍历完,此时A为空树,则不是子树
- 若B树成功被遍历完,此时B为空树,则是子树
若以上三个都不满足,则说明A没被遍历完,B也没被遍历完,同时根节点相同,则调用自身函数继续遍历is_subtree(A.left,B.left) 和is_subtree(A.right,B.right),此两项同时为True,则为子树
代码如下:
class Solution:
def HasSubtree(self, pRoot1, pRoot2):
# wri