剑指 Offer 38. 字符串的排列

输入一个字符串,打印出该字符串中字符的所有排列。

你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。

示例:

输入:s = “abc”
输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]

限制:

1 <= s 的长度 <= 8

/*
// Definition for a Node.
class Node {
    public int val;
    public Node left;
    public Node right;

    public Node() {}

    public Node(int _val) {
        val = _val;
    }

    public Node(int _val,Node _left,Node _right) {
        val = _val;
        left = _left;
        right = _right;
    }
};
*/
class Solution {

    Node head;
    Node pre;
    public Node treeToDoublyList(Node root) {
        if(root==null) return null;
        rightToLeft(root);
        head.left = pre;
        pre.right = head;
        return head;
    }
    void rightToLeft(Node curr){
        if(curr==null) return ;
        rightToLeft(curr.left);
        if(pre==null) head =curr;
        else pre.right = curr;
        curr.left = pre;
        pre =curr;
        rightToLeft(curr.right);
    }

   
}
复制代码
分类:
后端
标签: