zoukankan      html  css  js  c++  java
  • 深度优先搜索和广度优先搜索

    /**
     * BFS:利用队列
     */
    public static List<Integer> bfs(TreeNode root) {
    	Queue<TreeNode> treeNodeQueue = new LinkedList<>();
    	List<Integer> integerList = new ArrayList<>();
    	if (root == null) return new ArrayList<>();
    	((LinkedList<TreeNode>) treeNodeQueue).add(root);
    	while (!treeNodeQueue.isEmpty()) {
    		TreeNode treeNode = treeNodeQueue.poll();
    		integerList.add(treeNode.val);
    		if (treeNode.left != null) {
    			((LinkedList<TreeNode>) treeNodeQueue).add(treeNode.left);
    		}
    		if (treeNode.right != null) {
    			((LinkedList<TreeNode>) treeNodeQueue).add(treeNode.right);
    		}
    	}
    	return integerList;
    }
    
    /**
     * DFS:先序遍历,非递归方式利用 栈
     */
    public static List<Integer> dfs(TreeNode root) {
    	Stack<TreeNode> treeNodeStack = new Stack<>();
    	List<Integer> integerList = new ArrayList<>();
    	if (root == null) return new ArrayList<>();
    	treeNodeStack.add(root);
    	while (!treeNodeStack.isEmpty()) {
    		TreeNode treeNode = treeNodeStack.pop();
    		integerList.add(treeNode.val);
    		if (treeNode.right != null) treeNodeStack.add(treeNode.right);
    		if (treeNode.left != null) treeNodeStack.add(treeNode.left);
    	}
    	return integerList;
    }
    
  • 相关阅读:
    Spring 注解之 @Conditional
    Spring 注解之 @Scope @Lazy
    Spring 注解之 @ComponentScan
    泛型
    Spring AOP概述
    SpringIOC基于注解创建对象和注入属性
    静态代理和动态代理
    shinobi(3)
    miniupnpd初略理解和实际使用
    shinobi(2)
  • 原文地址:https://www.cnblogs.com/fyusac/p/13393672.html
Copyright © 2011-2022 走看看