117.info
人生若只如初见

java二叉树遍历代码怎么写

在Java中,二叉树的遍历有三种方式:前序遍历、中序遍历和后序遍历。下面是这三种遍历方式的代码示例:

// 定义二叉树节点
class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    
    TreeNode(int val) {
        this.val = val;
    }
}

// 前序遍历
void preOrderTraversal(TreeNode root) {
    if (root == null) {
        return;
    }
    
    System.out.print(root.val + " ");  // 先访问根节点
    preOrderTraversal(root.left);      // 再前序遍历左子树
    preOrderTraversal(root.right);     // 最后前序遍历右子树
}

// 中序遍历
void inOrderTraversal(TreeNode root) {
    if (root == null) {
        return;
    }
    
    inOrderTraversal(root.left);       // 先中序遍历左子树
    System.out.print(root.val + " ");  // 再访问根节点
    inOrderTraversal(root.right);      // 最后中序遍历右子树
}

// 后序遍历
void postOrderTraversal(TreeNode root) {
    if (root == null) {
        return;
    }
    
    postOrderTraversal(root.left);     // 先后序遍历左子树
    postOrderTraversal(root.right);    // 再后序遍历右子树
    System.out.print(root.val + " ");  // 最后访问根节点
}

使用时,可以先构建二叉树,然后根据需要选择对应的遍历方法进行遍历。例如:

public static void main(String[] args) {
    // 构建二叉树
    TreeNode root = new TreeNode(1);
    root.left = new TreeNode(2);
    root.right = new TreeNode(3);
    root.left.left = new TreeNode(4);
    root.left.right = new TreeNode(5);
    
    // 前序遍历
    System.out.println("前序遍历结果:");
    preOrderTraversal(root);
    
    // 中序遍历
    System.out.println("\n中序遍历结果:");
    inOrderTraversal(root);
    
    // 后序遍历
    System.out.println("\n后序遍历结果:");
    postOrderTraversal(root);
}

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe197AzsLAgFWDVQ.html

推荐文章

  • java如何修改set里的值

    在Java中,无法直接修改Set中的元素值,因为Set是一种不允许重复元素的集合,元素的值是不可变的。如果想要修改Set中的元素值,可以先将该元素从Set中删除,然后...

  • java怎么定义变量并赋值

    在Java中,可以使用以下方式来定义变量并赋值: 使用数据类型直接定义变量并赋值:
    int age = 18;
    String name = "John";
    double score = 85.5; ...

  • java怎么将short转化为double

    要将short转化为double,可以通过将short转化为int,然后再将int转化为double的方式实现。
    示例代码如下:
    short num = 10;
    double result = (do...

  • java如何获取list中的值

    可以使用get()方法来获取List中的值。get()方法接受一个索引作为参数,返回该索引位置上的元素。索引从0开始,例如,获取List中第一个元素的值可以使用get(0)。以...

  • 电脑开机广告如何去除

    要去除电脑开机广告,可以尝试以下几种方法: 使用广告拦截软件:安装广告拦截软件,如AdBlock Plus、uBlock Origin等,可以阻止大部分网页广告的显示。 修改启动...

  • win10找不到端口选项怎么解决

    如果在Windows 10中找不到端口选项,可以尝试以下解决方法: 检查设备管理器:打开“设备管理器”,然后展开“端口(COM和LPT)”部分,看看端口是否在列表中。如...

  • matlab傅里叶变换代码怎么写

    以下是一个简单的MATLAB傅里叶变换代码示例:
    % 输入信号
    t = 0:0.1:10; % 时间范围
    f = 1; % 信号频率
    x = sin(2*pi*f*t); % 生成正弦信号...

  • oracle怎么读取clob字段

    要读取Oracle数据库中的CLOB字段,可以使用以下方法: 使用SELECT语句读取CLOB字段的内容: SELECT CLOB_COLUMN_NAME
    FROM TABLE_NAME
    WHERE CONDITIO...