簡體   English   中英

Java二叉樹遞歸插入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM