剑指offer学习总结-Tree数据结构

2.3.4 树

树是一种在实际编程过程中经常会遇到的数据结构。它的逻辑很简答;除根节点之外每个节点都只有一个父节点,根节点没有父节点
叶节点之外所有的节点都有一个或多个子节点,叶子节点没有子节点。父节点和子节点之间用指针链接。由于树的操作会涉及大量指针
因此与树有关的面试题都不太容易。当面试官想考查应聘者在有复杂指针操作的情况下写代码的能力时,他往往会想到用与树有关的面试题。
面试的时候提到的树,大部分是二叉树。所谓二叉树是一种树的特殊结构,在二叉树中每个节点最多只能有两个子节点
在树种最重要的操作莫过于遍历,即按照某一顺讯访问树中的节点。通常树有如下几种遍历方式:

  • 前序遍历
  • 中序遍历
  • 后续遍历

很多面试官喜欢直接间接考查遍历

  • 面试题26“树的子结构”
  • 面试题34“二叉树中和为某一值的路径”
  • 面试题55“二叉树的深度”

  • 面试题7“重建二叉树”
  • 面试题33“二叉搜索树的后续遍历序列”
    也是考查对遍历特点的理解,因此应聘者应该对这3种遍历6种方法都了如执掌。