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

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

代码结构:

    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

阅读更多
文章标签: 二叉树 遍历
个人分类: 面试算法
想对作者说点什么? 我来说一句

二叉树的遍历

2014年05月16日 4KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭