题目链接:https://leetcode.cn/problems/permutations/思路这道题要用到回溯法,本质上是在一棵决策树上做DFS,每个节点做选择,递归深入,回退恢复,再做下一个选择。排列组合里,我们要考虑到所有的情况,因此这里的节点就是列表中的元素,比如[1, 2, 3],那就有三个节点,分别考虑这三个节点在第一位的情况,就能把所有的可能都列举出来:[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]我们定义一个回溯函数backscattering,传入当前的数组和一个中间变量level,以及最终的结果存储列表result首先判断,如果level到达了len(nums) - 1,那么说明没有元素可以再考虑了,将此时的nums放进result中,然后跳出函数,不继续执行下去如果level没有达到len(nums) - 1,那就说明还有可能性没有考虑完,需要继续做搜索:从当前的 level 位置开始,依次尝试把每一个候选元素放到 level 这个位置上,因为我每次已经固定了第1个元素(把每一个节点都放到第一个,然后遍历
Bangyao Wang