前端手写代码面试题
目录

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

· 约 5 分钟读完 · 第 112 / 125 章

推荐答案

本题详细解读

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 方法是一个递归方法,用于执行中序遍历。它首先遍历左子树,然后处理当前节点,最后遍历右子树。