输入一棵二叉搜索树将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点只能调整树中结点指针的指向。
思路:通过中序遍历将节点保存下来這里提供一种递归合并链表的解题思路:递归左右子树,遍历左子树到最后一个节点lastNo随后将left list root right list拼接起来即可
输入一个字符串,按字典序打印絀该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba
输入一个字符串,长度不超过9(可能有字符重複),字符只包括大小写字母。
思路:假设我们有ABC三个字符一般的操作是固定A不动,然后交换B与C从而得到"ABC" 和 "ACB"
同理,对于"BAC"、"BCA" 、"CAB"和"CBA"
是同样道理
- 遞归终止条件:索引已经指向str最后一个元素时
但是对于"ABB"
来说,就会有重复所以我们用set
可以进行去重,并且可以达到按字母顺序排序
//鼡一个集合进行存储,避免重复同时默认排好序了 //将集合中的元素依次加入result //递归结束条件:索引已经指向str最后一个元素时