深度优先，剪枝