C++,递归
判断t1树中是否有与t2树拓扑结构完全相同的子树
http://www.nowcoder.com/practice/4eaccec5ee8f4fe8a4309463b807a542
class Solution {
bool isEqual(TreeNode* root1, TreeNode* root2){
if(!root1 && !root2) return true;
if(!root1 || !root2) return false;
if(root1 -> val != root2 -> val) return false;
return isEqual(root1 -> left, root2 -> left)
&& isEqual(root1 -> right, root2 -> right);
}
public:
/**
*
* @param root1 TreeNode类
* @param root2 TreeNode类
* @return bool布尔型
*/
bool isContains(TreeNode* root1, TreeNode* root2) {
// write code here
if(!root1 && !root2) return true;
if(!root1 || !root2) return false;
return isEqual(root1, root2)
|| isContains(root1 -> left, root2)
|| isContains(root1 -> right, root2);
}
};
参考的诗云panther的代码