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

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

题目描述

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

前中后相对的是谁?

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

  • 前序遍历

根 -> 左 -> 右

  • 中序遍历

左 -> 根 -> 右

  • 后序遍历

左 -> 右 -> 根

解题模板

前序遍历,只需要将处理函数放到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;
};
复制代码

题目反思

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

相关文章
|
人工智能 Java 测试技术
二叉树通过前序中序来构建二叉树(炒鸡详细到每一步)
二叉树通过前序中序来构建二叉树(炒鸡详细到每一步)
二叉树的几个递归问题
二叉树的几个递归问题
48 0
LeetCode——根据二叉树创建字符串与二叉树的最近公共祖先
LeetCode——根据二叉树创建字符串与二叉树的最近公共祖先
|
算法
【算法】二叉排序树:创建二叉树,并以中序遍历输出
【算法】二叉排序树:创建二叉树,并以中序遍历输出
224 0
|
存储 算法
二叉树的前序/中序/后序遍历—采用递归与迭代两种方法实现嗷
二叉树的前序/中序/后序遍历—采用递归与迭代两种方法实现嗷
|
算法 C语言
【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
157 0
【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
|
数据采集 算法
数据结构与算法—二叉树的层序、前序中序后序(递归、非递归)遍历
层序遍历。听名字也知道是按层遍历。我们知道一个节点有左右节点。而每一层一层的遍历都和左右节点有着很大的关系。也就是我们选用的数据结构不能一股脑的往一个方向钻,而左右应该均衡考虑。这样我们就选用队列来实现。
204 0
数据结构与算法—二叉树的层序、前序中序后序(递归、非递归)遍历
|
存储 C++
二叉树的四种遍历方式(前序遍历,中序遍历,后序遍历,层序遍历)C++语言
二叉树的四种遍历方式(前序遍历,中序遍历,后序遍历,层序遍历)C++语言
239 0
|
存储 算法
非递归法创建二叉树
非递归法创建二叉树
344 0
非递归法创建二叉树
|
机器学习/深度学习 编译器
606. 根据二叉树创建字符串 :「递归」&「非递归」&「通用非递归」
606. 根据二叉树创建字符串 :「递归」&「非递归」&「通用非递归」

热门文章

最新文章