Java 实现 二叉树的 中序遍历

1、定义节点类

class Node {
    
    
    int val;
    Node left;
    Node right;
    Node(int val) {
    
    
        this.val = val;
    }
}

public class BinaryTree {
    
    /**
     * 中序遍历
     * @param root 节点
     */
    public void inorderTraversal(Node root) {
    
    
        if (root != null) {
    
    
            inorderTraversal(root.left);
            System.out.print(root.val + " ");
            inorderTraversal(root.right);
        }
    }
}

1)解析

首先,定义了一个 Node 类表示二叉树的节点。节点包含了一个整型的 val 值,以及左右两个子节点的引用。
然后,定义了 BinaryTree 类,该类包含了一个方法 inorderTraversal,用于实现中序遍历。
后序遍历的顺序是:先遍历左子树,然后遍历根节点,最后遍历右子树。
如果二叉树为空,则直接返回。否则,先输出左子树的值,然后根节点和递归遍历右子树。

2)使用方法

首先创建二叉树的节点,然后构建二叉树,最后调用 BinaryTree 类的 inorderTraversal 方法进行中序遍历。


2、测试代码

public class TestTree {
    
    
    public static void main(String[] args) {
    
    
        // 构建二叉树
        Node root = new Node(1);
        root.left = new Node(2);
        root.right = new Node(3);
        root.left.left = new Node(4);
        root.left.right = new Node(5);

        // 中序遍历
        BinaryTree bt = new BinaryTree();
        System.out.print("Inorder Traversal: ");
        bt.inorderTraversal(root); // 4 2 5 1 3
    }
}

PS

Java 实现 二叉树的 前序遍历:https://www.cnblogs.com/miracle-luna/p/17368605.html
Java 实现 二叉树的 中序遍历:https://www.cnblogs.com/miracle-luna/p/17368610.html
Java 实现 二叉树的 后序遍历:https://www.cnblogs.com/miracle-luna/p/17368606.html


猜你喜欢

转载自blog.csdn.net/aikudexiaohai/article/details/130801253
今日推荐