一、前言
本难度的题目主要考察二叉树的基本概念和操作。
1、基本概念
树是计算机科学中经常用到的一种非线性数据结构,以分层的形式存储数据。二叉树是一种特殊的树结构,每个节点最多有两个子树,通常子树被称作“左子树”和“右子树”。
以上述图片为例,介绍二叉树相关的几个术语:
-
节点的度:节点拥有子树的数量,图中节点 7 的度为 2;
-
叶子节点:度为 0 的节点,图中节点 2 就是一个叶子节点;
-
节点的层次:根节点的层定义为 1,根的孩子为第二层节点,依次类推;
-
树的深度:树中的最大节点层,图中树的深度为 3;
在 JavaScript 中,可以创建 TreeNode 对象来描述树的节点:
function TreeNode(val)