算法——中序遍历二叉树(递归)

这篇博客介绍了如何使用Java实现二叉树的中序遍历。通过创建TreeNode类表示树节点,构建了一个包含宋江、吴用、卢俊和林冲的二叉树,并定义了BinaryTree类表示整个二叉树。博主提供了中序遍历的代码,包括midOrder方法用于中序遍历,order方法进行节点的左、右递归遍历。测试部分展示了如何初始化二叉树并执行中序遍历,输出节点信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述


【1】正确序列:

应该为2-1-3-4


【2】代码:

  • 树节点:
public class TreeNode {
    int no;
    String name;
    TreeNode left;
    TreeNode right;

    public TreeNode(int no, String name) {
        this.no = no;
        this.name = name;
    }

    @Override
    public String toString() {
        return "{" + "no=" + no + ", name='" + name + '\'' + '}';
    }
}

  • 二叉树
public class BinaryTree {
    //二叉树根节点
    TreeNode head;

    public BinaryTree(TreeNode head) {
        this.head = head;
    }
}

  • 中序遍历算法:
/**
 * 中序遍历
 */
public class MidOrder {
    public static void main(String[] args) {
        TreeNode head = new TreeNode(1, "宋江");
        TreeNode node2 = new TreeNode(2, "吴用");
        TreeNode node3 = new TreeNode(3, "卢俊");
        TreeNode node4 = new TreeNode(4, "林冲");
        head.left = node2;
        head.right = node3;
        node3.right = node4;
        BinaryTree bt = new BinaryTree(head);
        mid(bt);
    }

    public static void mid(BinaryTree bt) {
        if (bt.head == null) {
            System.out.println("二叉树为空!");
            return;
        }
        //调用遍历算法
        order(bt.head);
    }

    public static void order(TreeNode node) {

        //左递归
        if (node.left != null)
            order(node.left);

        //打印二叉树
        System.out.println(node);

        //右递归
        if (node.right != null)
            order(node.right);
    }
}

【3】测试:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值