import java.util.*;

public class Solution {
    public TreeNode pruneLeaves (TreeNode root) {
        // 预处理
        if (root == null) return null;
        // 判断左结点是否为叶子结点
        if (root.left != null && isLeaf(root.left)) return null;
        // 判断右结点是否为叶子结点
        if (root.right != null && isLeaf(root.right)) return null;
        // 递归修剪左右子树
        root.left = pruneLeaves(root.left);
        root.right = pruneLeaves(root.right);
        // 返回修剪后的树
        return root;
    }

    // 判读当前结点是否为叶子节点
    public static boolean isLeaf(TreeNode node) {
        // 预处理
        if (node == null) return false;
        // 当前结点没有子结点则为叶子结点
        return node.left == null && node.right == null;
    }
}