推荐答案
-- -------------------- ---- ------- ----- -------- - ------------------ - ---------- - ------ --------- - ----- ---------- - ----- - - ----- ---------- - ------------- - --------- - ----- - ------------- - ----- ------- - --- ---------------- -- ---------- --- ----- - --------- - -------- - ---- - -------------------------- --------- - - ---------------- -------- - -- -------------- - ----------- - -- ---------- --- ----- - --------- - -------- - ---- - -------------------------- --------- - - ---- - -- ----------- --- ----- - ---------- - -------- - ---- - --------------------------- --------- - - - ------------- - ------ -------------------------- ------- - ---------------- ------ - -- ----- --- ----- - ------ ------ - -- ------ - ----------- - ------ -------------------------- ------- - ---- -- ------ - ----------- - ------ --------------------------- ------- - ---- - ------ ----- - - -------------------------- - ------------------------------------ ---------- - -------------------------- --------- - -- ----- --- ----- - ------------------------------------ ---------- --------------------- ------------------------------------- ---------- - - -
本题详细解读
1. TreeNode 类
TreeNode
类表示二叉树的节点。每个节点包含一个 value
属性,用于存储节点的值,以及 left
和 right
属性,分别指向左子节点和右子节点。
2. BinaryTree 类
BinaryTree
类表示二叉树本身。它包含一个 root
属性,用于指向树的根节点。
2.1 insert 方法
insert
方法用于向二叉树中插入一个新节点。如果树为空(即 root
为 null
),则将新节点设置为根节点。否则,调用 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
方法是一个递归方法,用于执行中序遍历。它首先遍历左子树,然后处理当前节点,最后遍历右子树。