Leetcode_#572_另一个树的子树

原题:#572_另一个树的子树

  • 关键思路
    • A树是B树的子树的条件
      • 两树完全相同
      • A树是B树的左子树
      • A树是B树的右子树
    • 递归
      • 结束条件:A或B为空则为false,AB均为空则为true
      • 递归操作:比较A是否为B的左子树,A是否为B的右子树
      • 返回值:true/false
public boolean isSubtree (TreeNode s, TreeNode t) {
    if(s == null && t == null)
            return true;
        if(s == null || t == null) return false;
        if(isEqual(s,t)){  //直接比较节点,简略些
            return true;
        }
        return isSubtree(s.left, t) || isSubtree(s.right, t);
    }

    public boolean isEqual(TreeNode l, TreeNode r){
        if(l == null && r == null) return true;
        if(l == null || r == null) return false;
        if(l.val == r.val)
            return isEqual(l.left,r.left) && isEqual(l.right,r.right);
        return false;
    }
}
原创文章 50 获赞 1 访问量 2931

猜你喜欢

转载自blog.csdn.net/u014642412/article/details/105904839