public class BinaryTree { private TreeNode root; public void insert(int value) { TreeNode newNode = new TreeNode(value); if (root == null) { root = newNode; } else { TreeNode current = root; while (true) { if (value < current.value) { if (current.left == null) { current.left = newNode; break; } else { current = current.left; } } else { if (current.right == null) { current.right = newNode; break; } else { current = current.right; } } } } }}给这串代码加详细注释
时间: 2023-11-28 14:49:41 浏览: 23
```
public class BinaryTree {
private TreeNode root; // 树的根节点
// 插入节点
public void insert(int value) {
TreeNode newNode = new TreeNode(value); // 创建新节点
if (root == null) { // 如果根节点为空,则将新节点设置为根节点
root = newNode;
} else {
TreeNode current = root; // 定义一个指针指向当前节点,从根节点开始遍历
while (true) {
if (value < current.value) { // 如果插入值小于当前节点值,则将新节点插入到左子树
if (current.left == null) { // 如果当前节点的左子树为空,则将新节点插入到该位置
current.left = newNode;
break;
} else { // 否则继续向左子树遍历
current = current.left;
}
} else { // 如果插入值大于等于当前节点值,则将新节点插入到右子树
if (current.right == null) { // 如果当前节点的右子树为空,则将新节点插入到该位置
current.right = newNode;
break;
} else { // 否则继续向右子树遍历
current = current.right;
}
}
}
}
}
}
// 定义树节点类
class TreeNode {
int value; // 节点的值
TreeNode left; // 左子节点
TreeNode right; // 右子节点
public TreeNode(int value) {
this.value = value;
this.left = null;
this.right = null;
}
}
```
以上是对代码的详细注释,用于插入一个整数节点并构建二叉搜索树。