[英]Java Binary Tree recursive Insert
我是 Java 新手。 請幫助我理解下面的代碼,指針是如何從左向右移動的。 這段代碼運行良好。 我只想知道工作情況。假設我們插入 20,30,10,35,9 。指針如何從根 20 左側的 10 移動到根 20 右側的 35,節點 30 。不應該嗎始終掛在根據代碼添加的最新節點的左側和右側。
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) {
決定走哪條路,如果傳入的值小於或等於當前節點值,則它將向左移動,否則向右移動。 移動后,它再次調用左節點或右節點的插入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.