题目描述
输入两棵二叉树 A,B,判断 B 是不是 A 的子结构。
我们规定空树不是任何树的子结构。
样例: A
8
/ \
8 7
/ \
9 2
/ \
4 7
B
8
/ \
9 2
返回 true,因为 B 是 A 的子结构。
Code
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} pRoot1
* @param {TreeNode} pRoot2
* @return {boolean}
*/
var hasSubtree = function(pRoot1, pRoot2) {
function isPart (p1, p2) {
if (!p2) return true;
if (!p1 || p1.val != p2.val) return false;
return isPart(p1.left,p2.left) && isPart(p1.right,p2.right);
}
if (!pRoot1 || !pRoot2) return false;
if (isPart(pRoot1, pRoot2)) return true;
return hasSubtree(pRoot1.left, pRoot2) || hasSubtree(pRoot1.right, pRoot2);
};