/
BinaryTree.java
45 lines (36 loc) · 1.08 KB
/
BinaryTree.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package bongf.week5;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
public class BinaryTree {
private List<Integer> dfsVisited = new ArrayList<>();
public BinaryTree() {
}
public List<Integer> bfs(Node root) {
List<Integer> visited = new ArrayList<>();
Queue<Node> toCheckNodes = new LinkedList<>();
toCheckNodes.offer(root);
while (!toCheckNodes.isEmpty()) {
Node node = toCheckNodes.poll();
visited.add(node.getValue());
if (node.getLeft() != null) {
toCheckNodes.offer(node.getLeft());
}
if (node.getRight() != null) {
toCheckNodes.offer(node.getRight());
}
}
return visited;
}
public List<Integer> dfs(Node root) {
if (root.getLeft() != null) {
dfs(root.getLeft());
}
dfsVisited.add(root.getValue());
if (root.getRight() != null) {
dfs(root.getRight());
}
return dfsVisited;
}
}