用java写一个二叉树的代码
时间: 2024-09-23 10:05:09 浏览: 33
要使用Java编写一个二叉树,你可以按照以下步骤创建一个简单的二叉树结构并实现基本的方法:
1. 定义二叉树节点(TreeNode)类:
```java
// MyBinaryTree.java
public class MyBinaryTree {
static class TreeNode {
int val;
TreeNode left;
TreeNode right;
// 构造器
TreeNode(int val) {
this.val = val;
}
}
}
```
2. 创建二叉树类(BinaryTree),包括插入节点和遍历方法:
```java
public class BinaryTree {
private TreeNode root;
// 插入节点的方法,这里以前序遍历为例(根-左-右)
public void insertNode(TreeNode node) {
if (root == null) {
root = node;
} else {
// 前序遍历,先插入左子树
insertNode(node.left);
// 再插入当前节点
node.left = root.left;
root.left = node;
// 最后插入右子树
insertNode(node.right);
}
}
// 中序遍历方法,辅助函数
private void inorderTraversal(TreeNode node, List<Integer> result) {
if (node != null) {
inorderTraversal(node.left, result);
result.add(node.val);
inorderTraversal(node.right, result);
}
}
// 获取中序遍历结果
public List<Integer> getInorderTraversal() {
List<Integer> result = new ArrayList<>();
inorderTraversal(root, result);
return result;
}
}
```
现在你可以实例化`BinaryTree`并操作它:
```java
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
// 插入节点示例
tree.insertNode(new TreeNode(1));
tree.insertNode(new TreeNode(2));
tree.insertNode(new TreeNode(3));
// 打印中序遍历结果
System.out.println("In-order traversal: " + tree.getInorderTraversal());
}
```
阅读全文