学习了队列后,再来看看新的数据结构,也就是树,当然基于大多数算法题考察的都是二叉树,所以我们按照二八原则,重点放到二叉树的学习和理解上
树的定义
树”这种数据结构真的很像我们现实生活中的“树”,这里面每个元素我们叫做“节点”;用来连接相邻节点之间的关系,我们叫做“父子关系”
父节点、子节点、兄弟节点、根节点、叶子节点
树的一些核心概念:A 节点就是 B 节点的父节点,B 节点是 A 节点的子节点。B、C、D 这三个节点的父节点是同一个节点,所以它们之间互称为兄弟节点。我们把没有父节点的节点叫做根节点,也就是图中的节点 E。我们把没有子节点的节点叫做叶子节点或者叶节点,比如图中的 G、H、I、J、K、L 都是叶子节点
节点高度、节点深度、节点层数量
除此之外,关于“树”,还有三个比较相似的概念:高度(Height)、深度(Depth)、层(Level)。它们的定义是这样的
- 节点的高度:节点到