关闭

二叉树的遍历(1)--先序遍历,中序遍历,后序遍历

标签: 二叉树遍历
62人阅读 评论(0) 收藏 举报
分类:

对于二叉树
这里写图片描述

代码结构:

    public static class Node {
        public int value;
        public Node left;
        public Node right;

        public Node(int data) {
            this.value = data;
        }
    }

一个节点包含左子节点,右子节点
一般情况下我们使用递归算法对二叉树进行遍历:先序遍历,中序遍历,后序遍历

先序遍历

    public static void preOrderRecur(Node head) {
        if (head == null) {
            return;
        }
        System.out.print(head.value + " ");
        preOrderRecur(head.left);
        preOrderRecur(head.right);
    }

分析如下:
这里写图片描述

1.首先输出首节点12的值
2.一直递归对左右子节点进行相同操作,总是完成左子节点的遍历再进行右子节点的遍历
3.重复2直至节点为空,然后一步一步向上返回。

先序遍历:12 24 40 56 55 50 35 66 70

  • 中序遍历
    public static void inOrderRecur(Node head) {
        if (head == null) {
            return;
        }
        inOrderRecur(head.left);
        System.out.print(head.value + " ");
        inOrderRecur(head.right);
    }

中序遍历:56 40 55 24 50 12 66 35 70

  • 后续遍历
    public static void posOrderRecur(Node head) {
        if (head == null) {
            return;
        }
        posOrderRecur(head.left);
        posOrderRecur(head.right);
        System.out.print(head.value + " ");
    }

后序遍历:56 55 40 50 24 66 70 35 12

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5677次
    • 积分:596
    • 等级:
    • 排名:千里之外
    • 原创:58篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档