我这里的二叉树: 树中节点是有序的。 右子树>根节点>左子树
二叉树的遍历方式主要有:前序遍历、中序遍历、后序遍历、层次遍历
前序、中序、后序其实指的是父节点被访问的次序
前序遍历: 先根节点,在左子树,在右子树
中序遍历: 先左子树,在根节点,在右子树
后序遍历: 先左子树,在右子树,在根节点
遍历代码总结:
前序遍历
//前序遍历
public void preorder(Node node) {
if (node == null) return;
System.out.print(node.data+"\t");
preorder(node.leftChild);
preorder(node.rightChild);
}
中序遍历(遍历数组一样的.)
//中序遍历
public void inorder(Node node) {
if (node == null) return;
inorder(node.leftChild);
System.out.print(node.data+"\t");
inorder(node.rightChild);
}
后序遍历
//后序遍历
public void postorder(Node node) {
if (node == null) return;
postorder(node.leftChild);
postorder(node.rightChild);
System.out.print(node.data+"\t");
}