public TreeNode toFlat(TreeNode n, TreeNode sub) {
        if (n.right != null) {
            sub = toFlat(n.right, sub);
        }
        if (n.left != null) {
            sub = toFlat(n.left, sub);
        }
        n.left = null;
        n.right = sub;
        return n;
    }