• 深度优先搜索和广度优先搜索


    /**
     * 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;
    }
    
  • 相关阅读:
    ajax的原理及实现方式
    在linux中添加环境变量
    ftp简单命令
    linux命令之scp
    java中创建对象的方法
    10个调试技巧
    java读取.properties配置文件的几种方法
    Java对象和XML转换
    Java Float类型 减法运算时精度丢失问题
    Java内存分配全面浅析
  • 原文地址:https://www.cnblogs.com/fyusac/p/13393672.html
Copyright © 2020-2023  润新知