二叉树的三种递归遍历(前序,中序,后序)

今天跟大家分享二叉树常见的三种遍历方式。
根据访问结点操作发生位置命名。

  1. NLR:前序遍历(Preorder Traversal 亦称先序遍历)——访问根结点的操作发生在遍历其左右子树之前。
  2. LNR:中序遍历(Inorder Traversal)——访问根结点的操作发生在遍历其左右子树之中(间)。
  3. LRN:后序遍历(Postorder Traversal)——访问根结点的操作发生在遍历其左右子树之后。
    下面是一个二叉树,我将递归遍历这个二叉树将它的每个节点的值输出:
    在这里插入图片描述代码:
public class TestTree {
    static class Node{
        public  char val;
        public Node left;
        public Node right;
         public Node(char val) {
             this.val = val;
             this.left = null;
             this.right = null;
         }
     }
     static Node build(){
         Node A = new Node('A');
         Node B = new Node('B');
         Node C = new Node('C');
         Node D = new Node('D');
         Node E = new Node('E');
         Node F = new Node('F');
         Node G = new Node('G');
         A.left = B;
         A.right = C;
         B.left = D;
         B.right = E;
         C.left = F;
         C.right = G;
         return A;
     }
    static void preorder(Node root) {//前序遍历
         if(root==null) {
           return;
         }
        System.out.println(root.val);
         preorder(root.left);
         preorder(root.right);
    }
    static void inorder(Node root) {//中序遍历
        if(root==null) {
            return;
        }
        inorder(root.left);
        System.out.println(root.val);
        inorder(root.right);
    }
    static void postorder(Node root){//后序遍历
        if(root==null) {
            return;
        }
        postorder(root.left);
        postorder(root.right);
        System.out.println(root.val);
    }
    public static void main(String[] args) {
      Node root = build();
      preorder(root);
      Node root1 = build();
      inorder(root1);
      Node root2 = build();
      postorder(root2);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值