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;
    }
    
  • 相关阅读:
    TensorFlow(五):手写数字识别加强版
    TensorFlow(四):手写数字识别
    TensorFlow(三):非线性回归
    Apache+php搭建
    PHP基础知识(1)
    mysql8.0.11安装
    ffmpeg-20160517-git-bin-v2
    ffmpeg-20160517-git-bin
    Node.js 字体格式转换 ttf2eot ttf2woff ttf2svg
    ffmpeg-20160515-git-bin
  • 原文地址:https://www.cnblogs.com/fyusac/p/13393672.html
Copyright © 2011-2022 走看看