1、创建二叉树节点
我这边使用的是内部类创建节点
static class Node {
private String value;
private Node left;
private Node right;
public Node(String value) {
this.value = value;
}
}
给节点添加数据
Node nodeA = new Node("A");
Node nodeB = new Node("B");
Node nodeC = new Node("C");
Node nodeD = new Node("D");
Node nodeE = new Node("E");
Node nodeF = new Node("F");
Node nodeG = new Node("G");
nodeA.left = nodeB;
nodeA.right = nodeC;
nodeB.left = nodeD;
nodeB.right = nodeE;
nodeC.left = nodeF;
nodeD.left = nodeG;
2、二叉树遍历方式
前序遍历
public static void list1(Node node) {
if (node == null) return;
System.out.print(node.value);
list1(node.left);
list1(node.right);
}
中序遍历
public static void list2(Node node) {
if (node == null) return;
list2(node.left);
System.out.print(node.value);
list2(node.right);
}
后序遍历
public static void list3(Node node) {
if (node == null) return;
list3(node.left);
list3(node.right);
System.out.print(node.value);
}
层次遍历
public static void no1(Node node){
if(node==null){
return;
}
Queue<Node> queue = new LinkedList<>();
queue.add(node);
while (!queue.isEmpty()){
Node node1 = queue.poll();
System.out.print(node1.value);
if(node1.left!=null) queue.add(node1.left);
if(node1.right!=null) queue.add(node1.right);
}
}
效果