The sword refers to the offer--the substructure of the tree

public boolean HasSubtree(TreeNode root1,TreeNode root2) {
        if(root1==null && root2!=null) {
        	return false;
        }
        if(root2==null) {
        	return false;
        }
        boolean flag = false;
        if(root1.val == root2.val) {
        	flag = isSubTree(root1, root2);
        }
        if(!flag) {
        	flag = HasSubtree(root1.left, root2);
        	if(!flag) {
        		flag = HasSubtree (root1.right, root2);
        	}
        }
		return flag;
    }

	/**
	 * @param left
	 * @param root2
	 * @return
	 */
	private boolean isSubTree(TreeNode root1, TreeNode root2) {
		if(root2 == null) return true;
		if(root1==null && root2 != null) return false;
		if(root1.val == root2.val) {
			return isSubTree(root1.left, root2.left) && isSubTree(root1.right, root2.right);
		}
		return false;
	}

  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325011385&siteId=291194637