在本文中,我将尽力解释一些您在编码面试之前应该学习的核心算法。
什么是二叉搜索树 (BST)?
在编码面试中很常见,BST 是一种树状数据结构,顶部有一个根。它们是存储数值的好方法,因为它们的有序性质允许快速搜索和查找。 与普通树相比,BST 具有以下特性: - 每个左孩子的值都比它的父母小
- 每个右孩子的值都比它的父母大
- 每个节点可以包含 0 到 2 个子节点。
下图应该更清楚地说明事情。 二叉树节点的定义 
我们通常在 Javascript 中定义一个二叉树节点,函数如下: function TreeNode(val, left, right) { this.val = val this.left = left this.right = right }
二叉树基本遍历(中序、后序、前序)
首先要知道如何遍历 BST 的每个节点。这允许我们在 BST 的所有节点上执行一个功能。例如,如果我们想x在 BST 中找到一个值,我们就需要节点。 有三种主要方法可以做到这一点。幸运的是,他们有共同的主题。
中序遍历
递归算法是开始使用二叉树中序遍历的最简单方法。思路如下: |