1. 二叉树的遍历

打印在前,在中,在后

1.1. 前序遍历

先输出当前节点
如果左子节点不为空,则递归继续前序遍历
如果右子节点不为空,则递归前序遍历

  1. public void preTraversal(Node root) {
  2. System.out.println(root);
  3. if(root.left != null){
  4. preTraversal(root.left);
  5. }
  6. if(root.right != null){
  7. preTraversal(root.right);
  8. }
  9. }

root -> 11 -> 22 -> 44 -> 66 -> 33 -> 88 -> 5 -> 10

1.2. 中序遍历

如果左子节点不为空,则递归继续前序遍历
先输出当前节点
如果右子节点不为空,则递归前序遍历

  1. public void preTraversal(Node root) {
  2. if(root.left != null){
  3. preTraversal(root.left);
  4. }
  5. System.out.println(root);
  6. if(root.right != null){
  7. preTraversal(root.right);
  8. }
  9. }

1.3. 后序遍历

如果左子节点不为空,则递归继续前序遍历
如果右子节点不为空,则递归前序遍历
先输出当前节点

  1. public void preTraversal(Node root) {
  2. if(root.left != null){
  3. preTraversal(root.left);
  4. }
  5. if(root.right != null){
  6. preTraversal(root.right);
  7. }
  8. System.out.println(root);
  9. }