题目链接
558. 四叉树交集
题目代码
class Solution {
public:
Node* intersect(Node* quadTree1, Node* quadTree2) {
if (quadTree1->isLeaf){
return quadTree1->val ? new Node(true, true, nullptr,
nullptr, nullptr, nullptr) : quadTree2;
}
if (quadTree2->isLeaf){
return quadTree2->val ? new Node(true, true, nullptr,
nullptr, nullptr, nullptr) : quadTree1;
}
Node* t1 = intersect(quadTree1->topLeft, quadTree2->topLeft);
Node* t2 = intersect(quadTree1->topRight, quadTree2->topRight);
Node* t3 = intersect(quadTree1->bottomLeft, quadTree2->bottomLeft);
Node* t4 = intersect(quadTree1->bottomRight, quadTree2->bottomRight);
if (t1->isLeaf && t2->isLeaf && t3->isLeaf && t4->isLeaf){
if (t1->val == t2->val && t2->val == t3->val && t3->val == t4->val){
return new Node(t1->val, true, nullptr, nullptr, nullptr, nullptr);
}
}
return new Node(false, false, t1, t2, t3, t4);
}
};