【32】树的子结构
结构,二叉树,遍历,面试,算法2016-06-26
输入两棵树,判断两棵二叉树A和B,判断B是不是A的子结构。
public BinaryTreeNode{
int mValue;
BinaryTreeNode mLeft;
BinaryTreeNode mRight;
}
class BinaryTreeNode{
int mValue;
BinaryTreeNode mLeft;;
BinaryTreeNode mRight;
}
boolean hasSubTree(BinaryTreeNode a,BinaryTreeNode b){
boolean result = false;
if(a != null && b != null){
if(a.mValue == b.mValue){
result = dosTreeHave(a,b);
}
if(!result){
result = hasSubTree(a.mLeft,b);
}
if(!result){
result = hasSubTree(a.mRight,b);
}
}
return result;
}
boolean dosTreeHave(BinaryTreeNode c,BinaryTreeNode d){
if(d == null){
return true;
}
if(c == null){
return false;
}
return dosTreeHave(c.mLeft,d) && dosTreeHave(c.mRight,d);
}
参考:
剑指offer