全局变量一个二维数组ret存放最终要返回的结果一个一维数组path表示决策树走的路径即一种可能的排列结果一个boolean类型的数组check用于标记元素是否被使用过了下标对应元素在原数组下标其保存的内容true/false代表是否被使用过主方法内创建实例调用递归函数返回最终结果return ret递归函数dfs1递归出口路径填满存入结果如果path的长度和原数组nums一样了代表已经到达一种结果可以直接添加到ret中注意需要重新new一份加入path是引用类型List的对象直接存引用path后续回溯删元素的时候会影响存入ret的结果2循环原数组nums遍历所有可选元素2.1选择当前元素如果当前元素状态是未被使用false将其加入到path中并修改状态为true2.2开始递归探索下一层填充后面的空位,2.3递归完成之后一种结果已完成上传开始回溯:修改当前元素状态为falsepath物理删除最后一个元素