课程学习--算法总结 图论算法

课程学习--算法总结 图论算法,第1张

一、 深度优先搜索

    List<Integer> visited = new ArrayList<>();

    public void dfs(Node node) {
        if (node == null) {
            return;
        }

        if (visited.contains(node.val)) {
            return;
        }

        System.out.print(node.val + "->");
        visited.add(node.val);

        for (int i = 0; i < node.neighbors.size(); i++) {
            dfs(node.neighbors.get(i));
        }
    }

二、 广度优先搜索

    List<Integer> visited = new ArrayList<>();

    public void bfs(Node node) {
        if (node == null) {
            return;
        }

        LinkedList<Node> queue = new LinkedList<>();

        queue.add(node);
        visited.add(node.val);

        while (!queue.isEmpty()) {
            Node n = queue.poll();

            System.out.println(n.val + "->");

            for (Node neighbor: n.neighbors) {
                if (!visited.contains(neighbor.val)) {
                    visited.add(neighbor.val);
                    queue.add(neighbor);
                }
            }
        }
    }

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/791237.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-05
下一篇2022-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存