递归模板解决二叉树的前中后序遍历问题

简介: 递归模板解决二叉树的前中后序遍历问题

题目描述

二叉树的前中后序遍历,是面试中的常考题目也是解决二叉树问题的核心基础,本次我们来介绍下如何通过递归的方式,求解这类问题,解决这类问题的思路包括使用递归或者迭代,本次我们主要介绍如何使用递归模板来解决这类问题,通过使用模板这三种遍历只需进行细微的改动,即可得到最终的结果。

前中后相对的是谁?

二叉树的前中后序遍历,指的是根节点所在的位置。

  • 前序遍历

根 -> 左 -> 右

  • 中序遍历

左 -> 根 -> 右

  • 后序遍历

左 -> 右 -> 根

解题模板

前序遍历,只需要将处理函数放到1号位置,中序遍历只需要将处理函数放到2号位置,后序遍历只需要将处理函数放到3号位置上即可。

var postorderTraversal = function(root) {
  const result = [];
  function lastOrder(node) {
    if (!node) return 
    // 1号位置
    lastOrder(node.left);
    // 2号位置
    lastOrder(node.right);
    // 3号位置
    result.push(node.val);
  }
  lastOrder(root);
  return result;
};
复制代码

题目反思

二叉树的前中后序遍历的递归解法,可以通过在函数中嵌套函数的方式来解决,所谓的前中后序遍历主要是处理函数放置的位置不同。

相关文章
二叉树的几个递归问题
二叉树的几个递归问题
46 0
|
4天前
二叉树的中序遍历和后序遍历的递归与非递归代码示例
二叉树的中序遍历和后序遍历的递归与非递归代码示例
|
编译器
深入解析前序遍历:探索二叉树的前进之路
在计算机科学的广袤领域中,数据结构是解决问题的基础,而二叉树作为一种重要且常用的数据结构,为问题的处理提供了高效的方式。在二叉树的世界中,遍历是一项核心操作,它能够让我们有条不紊地访问每一个节点,实现从根部到叶子、从叶子到根部等不同的访问序列。而前序遍历(Preorder Traversal)作为一种经典的遍历方式,在这个过程中扮演着重要角色。
115 0
非递归方式实现二叉树的前、中、后序遍历
非递归方式实现二叉树的前、中、后序遍历
|
存储 算法
二叉树的前序/中序/后序遍历—采用递归与迭代两种方法实现嗷
二叉树的前序/中序/后序遍历—采用递归与迭代两种方法实现嗷
二叉树的三种非递归遍历方式
二叉树的三种非递归遍历方式
|
存储 C++
二叉树的四种遍历方式(前序遍历,中序遍历,后序遍历,层序遍历)C++语言
二叉树的四种遍历方式(前序遍历,中序遍历,后序遍历,层序遍历)C++语言
231 0
|
数据采集 算法
数据结构与算法—二叉树的层序、前序中序后序(递归、非递归)遍历
层序遍历。听名字也知道是按层遍历。我们知道一个节点有左右节点。而每一层一层的遍历都和左右节点有着很大的关系。也就是我们选用的数据结构不能一股脑的往一个方向钻,而左右应该均衡考虑。这样我们就选用队列来实现。
198 0
数据结构与算法—二叉树的层序、前序中序后序(递归、非递归)遍历
|
存储 算法
非递归法创建二叉树
非递归法创建二叉树
331 0
非递归法创建二叉树
Day14——二叉树的前中后序遍历(迭代&&递归)
Day14——二叉树的前中后序遍历(迭代&&递归)
98 0