Reticulation events occur frequently in many types of species. Therefore, to develop accurate methods for reconstructing phylogenetic networks in order to describe evolutionary history in the presence of reticulation events is important. Previous work has suggested that constructing phylogenetic networks by merging gene trees is a biologically meaningful approach. This paper presents two new efficient algorithms for inferring a phylogenetic network from a set T of gene trees of arbitrary degrees. The first algorithm solves the open problem of construcing a refining galled network for T(if one exists) with no restruction on the number of hybrid nodes; in fact, it outputs the samllest possible solution. In comparison, the previously best method (SpNet) can only construct networks having a single hybrid node. For cases where there exists no refining galled network for T, their second algorithm identifies a minimum subset of the species set to be removed so that the resulting trees can be combined into a galled network.