树的子结构
题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
时间限制:1秒 空间限制:32768K
代码
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function HasSubtree(pRoot1, pRoot2)
{
// write code here
function doPRoot2BelongToPRoot1(node1, node2) {
if(node1 != null && node2 != null) {
if(node1.val == node2.val) {
return doPRoot2BelongToPRoot1(node1.left, node2.left) && doPRoot2BelongToPRoot1(node1.right, node2.right);
} else {
return false;
}
} else if(node2 == null){
return true;
} else {
return false;
}
}
var result = false;
if(pRoot1 != null && pRoot2 != null) {
result = doPRoot2BelongToPRoot1(pRoot1, pRoot2);
if(!result) result = HasSubtree(pRoot1.left, pRoot2);
if(!result) result = HasSubtree(pRoot1.right, pRoot2);
}
return result;
}