中序遍历(LDR)是 二叉树遍历的一种,也叫做 中根遍历、中序周游。在二叉树中,先左后根再右。巧记:左根右。
    中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树
    二叉树为空则结束返回,
    否则:
    (1)中序遍历左子树
    (2)访问根结点
    (3)中序遍历右子树
    如图所示
    中序遍历 - 图1
    中序遍历结果:DBEAFC

    1. public class Test {
    2. public static void main(String[] args) {
    3. TreeNode[] node = new TreeNode[10];// 以数组形式生成一棵完全二叉树
    4. for (int i = 0; i < 10; i++) {
    5. node[i] = new TreeNode(i);
    6. }
    7. for (int i = 0; i < 10; i++) {
    8. if (i * 2 + 1 < 10)
    9. node[i].left = node[i * 2 + 1];
    10. if (i * 2 + 2 < 10)
    11. node[i].right = node[i * 2 + 2];
    12. }
    13. midOrderRe(node[0]);
    14. }
    15. public static void midOrderRe(TreeNode biTree) {
    16. // 中序遍历递归实现
    17. if (biTree == null)
    18. return;
    19. else {
    20. midOrderRe(biTree.left);
    21. System.out.print(biTree.value + " ");
    22. midOrderRe(biTree.right);
    23. }
    24. }
    25. }
    26. // 节点结构
    27. class TreeNode {
    28. int value;
    29. TreeNode left;
    30. TreeNode right;
    31. TreeNode(int value) {
    32. this.value = value;
    33. }
    34. }