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;
    }
    
  • 相关阅读:
    从远程库克隆
    添加远程库
    远程仓库
    删除文件
    xml 解析的四种方式
    遍历Map
    Spring 和SpringMVC 的父子容器关系
    JDK各版本新特性!
    看啦这么就别人的博客 我也来写一篇! Object转换其他类型
    手机访问电脑搭建的服务器地址
  • 原文地址:https://www.cnblogs.com/fyusac/p/13393672.html
Copyright © 2011-2022 走看看