树的子结构
题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
重复两步,采用递归
- 根节点是否相同
- 相同检查剩余节点
function HasSubtree(pRoot1, pRoot2)
{
// write code here
let res=false;
if(pRoot1===null)return false;
if(pRoot2===null)return false;
if(pRoot1.val==pRoot2.val) res=tree1hastree2(pRoot1,pRoot2)
if(!res)res=HasSubtree(pRoot1.left,pRoot2)
if(!res)res=HasSubtree(pRoot1.right,pRoot2)
return res;
}
function tree1hastree2(pRoot1,pRoot2)
{
if(pRoot2===null)return true;
if(pRoot1===null)return false;
if(pRoot1.val!==pRoot2.val)return false;
return tree1hastree2(pRoot1.left,pRoot2.left)&&tree1hastree2(pRoot1.right,pRoot2.right);
}