递归和深度优先遍历

 
数组全排列
private void write(int[] b, ArrayList<ArrayList<Integer>> list,
                       LinkedList<Integer> item) {
        boolean flip;

        if (item.size() == b.length) {
            list.add(new ArrayList<Integer>(item));
            return;
        }
        for (int i = 0 ; i < b.length ; i++) {
            if (item.contains(b[i])) {
                continue;
            } else {
                item.add(b[i]);
                write(b, list, item);

                item.removeLast();
            }
        }
    }
 
深度优先搜索  先序遍历

public void dfs(TreeNode root) {

if (root != null) {

  System.out.print(root.val+" ");

  preOrderTraverse1(root.left);

  preOrderTraverse1(root.right);

}

深度优先搜索  中序遍历

public void dfs(TreeNode root) {

if (root != null) {

  preOrderTraverse1(root.left);

  System.out.print(root.val+" ");

  preOrderTraverse1(root.right);

}

深度优先搜索  后序遍历

public void dfs(TreeNode root) {

if (root != null) {

  preOrderTraverse1(root.left);

  preOrderTraverse1(root.right);

  System.out.print(root.val+" ");

}

posted @ 2022-10-20 22:25  yanher  阅读(33)  评论(0)    收藏  举报