一简介
1.二叉树的遍历
前序遍历:父节点,左子树,右子树
中序遍历:左子树,父节点,右子树
后序遍历:左子树,右子树,父节点
如图所示:
二.代码
1.新建Node类
public class Node {
/**
* 节点编号
*/
public int no;
/**
* 节点名字
*/
public String name;
/**
* 左节点
*/
public Node leftNode;
/**
* 右节点
*/
public Node rightNode;
public Node(int no, String name) {
this.no = no;
this.name = name;
}
@Override
public String toString() {
return "Node{" +
"no=" + no +
", name='" + name + '\'' +
", leftNode=" + leftNode +
", rightNode=" + rightNode +
'}';
}
}
2.新建TraverseTree类
public class TraverseTree {
/**
* 前序遍历,根左右
*/
public void prefixTraverse(Node node) {
System.out.println(node);
if (node.leftNode != null) {
prefixTraverse(node.leftNode);
}
if (node.rightNode != null) {
prefixTraverse(node.rightNode);
}
}
/**
* 中序遍历,左根右
*/
public void infixTraverse(Node node) {
if (node.leftNode != null) {
infixTraverse(node.leftNode);
}
System.out.println(node);
if (node.rightNode != null) {
infixTraverse(node.rightNode);
}
}
/**
* 后序遍历,左右根
*/
public void suffixTraverse(Node node) {
if (node.leftNode != null) {
suffixTraverse(node.leftNode);
}
if (node.rightNode != null) {
suffixTraverse(node.rightNode);
}
System.out.println(node);
}
}