Leetcode_558_四叉树交集_递归

class Solution {
    public Node intersect(Node quadTree1, Node quadTree2) {
        if (quadTree1.isLeaf) {
            if (quadTree1.val) {
                return quadTree1;
            } else {
                quadTree1.isLeaf = false;
                return quadTree2;
            }
        }
        if (quadTree2.isLeaf) {
            if (quadTree2.val) {
                quadTree1.isLeaf = true;
                return quadTree2;
            } else {
                return quadTree1;
            }
        }
        quadTree1.bottomLeft = intersect(quadTree1.bottomLeft, quadTree2.bottomLeft);
        quadTree1.bottomRight = intersect(quadTree1.bottomRight, quadTree2.bottomRight);
        quadTree1.topLeft = intersect(quadTree1.topLeft, quadTree2.topLeft);
        quadTree1.topRight = intersect(quadTree1.topRight, quadTree2.topRight);
        if (judge(quadTree1.bottomLeft) && judge(quadTree1.bottomRight) && judge(quadTree1.topLeft) && judge(quadTree1.topRight)) {
            quadTree1.isLeaf = true;
            quadTree1.val = true;
            quadTree1.bottomLeft = null;
            quadTree1.bottomRight = null;
            quadTree1.topLeft = null;
            quadTree1.topRight = null;
        }
        return quadTree1;
    }

    boolean judge(Node node) {
        return node != null && node.isLeaf && node.val;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值