您的位置:首页 > 其它

【二叉树】树的子结构

2016-09-17 14:45 387 查看
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;

public TreeNode(int val) {
this.val = val;

}

}
*/
public class Solution {
public boolean HasSubtree(TreeNode root1,TreeNode root2) {

boolean result = false;

if(root1 != null && root2 != null){

if(root1.val == root2.val){
result = DoesTree1HasTree2(root1,root2);
}

//递归遍历左子树
if(!result){
result = HasSubtree(root1.left, root2);
}

//递归遍历右子树
if(!result){
result = HasSubtree(root1.right, root2);
}
}

return result;

}

public boolean DoesTree1HasTree2(TreeNode root1,TreeNode root2){

if(root2 == null){
return true;
}

if(root1 == null){
return false;
}

if(root1.val != root2.val){
return false;
}

return DoesTree1HasTree2(root1.left, root2.left) && DoesTree1HasTree2(root1.right, root2.right);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: