0%

leetcode-tree-traversal

总结二叉树的遍历方法

一棵二叉树由根结点 (val)、左子树(left) 和右子树(right) 三部分组成,若规定 M、L、R 分别代表 val、left、right,则二叉树的遍历方式有 6 种:

  • MLR
  • MRL
  • LMR
  • LRM
  • RDL
  • RLD

由于先遍历 left 和先遍历 right 在算法设计上没有本质区别,所以,仅看应用最广泛的 3 种(先左后右,比较符合咱们现在写字的顺序,利于理解) 即可(dfs: 深度优化),当然除了这些方法,遍历方法还有层序遍历方法(bfs: 广度优先):

  • MLR(前序遍历) : val -> left -> right
  • LMR(中序遍历):left -> val -> right
  • LRM(后序遍历):left -> right -> val

以上遍历方法,都可以由以下方法来实现

  • Recursive :递归
  • Iteration : 迭代
  • Morris: 以及为了解决以上实现方案中空间复杂度高的问题所衍生出的方法 ( Morris 遍历)

题目分类

中序遍历

94. 二叉树的中序遍历

897. 递增顺序搜索树

层序遍历

102. 二叉树的层序遍历