Java 二叉树递归插入
Java Binary Tree recursive Insert
我是 Java 的新手。请帮助我理解下面的代码,指针是如何从左向右移动的。此代码运行良好。我只想知道 working.Lets 说如果我们插入 20,30,10,35,9 。指针如何从根 20 左侧的 10 移动到根 20 右侧的节点 30 的 35 。Shouldn'它总是挂在根据代码添加的最新节点的左侧和右侧。
class Node {
Node right, left;
int data = 0;
Node(int data) {
this.data = data;
}
public void insert(int value) {
if (value <= data) {
if (left == null) {
left = new Node(value);
} else {
left.insert(value);
}
} else {
if (right == null) {
right = new Node(value);
} else {
right.insert(value);
}
}
}
}
指针正确移动,因为检查 if (value <= data) {
决定要走哪条路,如果传入值小于或等于当前节点值,则它将向左移动,否则向右移动。移动后,它再次调用插入到左侧或右侧节点。
我是 Java 的新手。请帮助我理解下面的代码,指针是如何从左向右移动的。此代码运行良好。我只想知道 working.Lets 说如果我们插入 20,30,10,35,9 。指针如何从根 20 左侧的 10 移动到根 20 右侧的节点 30 的 35 。Shouldn'它总是挂在根据代码添加的最新节点的左侧和右侧。
class Node {
Node right, left;
int data = 0;
Node(int data) {
this.data = data;
}
public void insert(int value) {
if (value <= data) {
if (left == null) {
left = new Node(value);
} else {
left.insert(value);
}
} else {
if (right == null) {
right = new Node(value);
} else {
right.insert(value);
}
}
}
}
指针正确移动,因为检查 if (value <= data) {
决定要走哪条路,如果传入值小于或等于当前节点值,则它将向左移动,否则向右移动。移动后,它再次调用插入到左侧或右侧节点。