编写一个函数,实现一个简单的二叉树 (Binary Tree)

推荐答案

-- -------------------- ---- -------
----- -------- -
    ------------------ -
        ---------- - ------
        --------- - -----
        ---------- - -----
    -
-

----- ---------- -
    ------------- -
        --------- - -----
    -

    ------------- -
        ----- ------- - --- ----------------
        -- ---------- --- ----- -
            --------- - --------
        - ---- -
            -------------------------- ---------
        -
    -

    ---------------- -------- -
        -- -------------- - ----------- -
            -- ---------- --- ----- -
                --------- - --------
            - ---- -
                -------------------------- ---------
            -
        - ---- -
            -- ----------- --- ----- -
                ---------- - --------
            - ---- -
                --------------------------- ---------
            -
        -
    -

    ------------- -
        ------ -------------------------- -------
    -

    ---------------- ------ -
        -- ----- --- ----- -
            ------ ------
        -
        -- ------ - ----------- -
            ------ -------------------------- -------
        - ---- -- ------ - ----------- -
            ------ --------------------------- -------
        - ---- -
            ------ -----
        -
    -

    -------------------------- -
        ------------------------------------ ----------
    -

    -------------------------- --------- -
        -- ----- --- ----- -
            ------------------------------------ ----------
            ---------------------
            ------------------------------------- ----------
        -
    -
-

本题详细解读

1. TreeNode 类

TreeNode 类表示二叉树的节点。每个节点包含一个 value 属性,用于存储节点的值,以及 leftright 属性,分别指向左子节点和右子节点。

2. BinaryTree 类

BinaryTree 类表示二叉树本身。它包含一个 root 属性,用于指向树的根节点。

2.1 insert 方法

insert 方法用于向二叉树中插入一个新节点。如果树为空(即 rootnull),则将新节点设置为根节点。否则,调用 insertNode 方法递归地将新节点插入到正确的位置。

2.2 insertNode 方法

insertNode 方法是一个递归方法,用于将新节点插入到树中的正确位置。如果新节点的值小于当前节点的值,则将其插入到左子树中;否则,插入到右子树中。

2.3 search 方法

search 方法用于在二叉树中查找一个值。它调用 searchNode 方法递归地在树中查找目标值。

2.4 searchNode 方法

searchNode 方法是一个递归方法,用于在树中查找目标值。如果当前节点为 null,则返回 false。如果目标值小于当前节点的值,则在左子树中继续查找;如果目标值大于当前节点的值,则在右子树中继续查找;如果目标值等于当前节点的值,则返回 true

2.5 inOrderTraversal 方法

inOrderTraversal 方法用于执行中序遍历。它调用 inOrderTraversalNode 方法递归地遍历树中的每个节点,并对每个节点的值执行回调函数。

2.6 inOrderTraversalNode 方法

inOrderTraversalNode 方法是一个递归方法,用于执行中序遍历。它首先遍历左子树,然后处理当前节点,最后遍历右子树。

纠错
反馈