题目链接:
Solution:
- 主要在于理解好题意,其实就是一个递归问题,具体见代码注释。
Code:
class Solution {
public Node intersect(Node quadTree1, Node quadTree2) {
if(quadTree1.isLeaf){
if(quadTree1.val){
return new Node(true,true);
}
return new Node(quadTree2.val,quadTree2.isLeaf,quadTree2.topLeft,quadTree2.topRight,quadTree2.bottomLeft,quadTree2.bottomRight);
}
if(quadTree2.isLeaf){
if(quadTree2.val){
return new Node(true,true);
}
return new Node(quadTree1.val,quadTree1.isLeaf,quadTree1.topLeft,quadTree1.topRight,quadTree1.bottomLeft,quadTree1.bottomRight);
}
Node node1 = intersect(quadTree1.topLeft,quadTree2.topLeft);
Node node2 = intersect(quadTree1.topRight,quadTree2.topRight);
Node node3 = intersect(quadTree1.bottomLeft,quadTree2.bottomLeft);
Node node4 = intersect(quadTree1.bottomRight,quadTree2.bottomRight);
if(node1.isLeaf && node2.isLeaf && node3.isLeaf && node4.isLeaf && node1.val == node2.val
&& node1.val == node3.val && node1.val == node4.val){
return new Node(node1.val,true);
}
return new Node(false,false,node1,node2,node3,node4);
}
}