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

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

题目描述

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

前中后相对的是谁?

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

  • 前序遍历

根 -> 左 -> 右

  • 中序遍历

左 -> 根 -> 右

  • 后序遍历

左 -> 右 -> 根

解题模板

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

题目反思

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

目录
打赏
0
0
0
0
6
分享
相关文章
二叉树的几个递归问题
二叉树的几个递归问题
60 0
|
10月前
|
leetcode-106:从中序与后序遍历序列构造二叉树
leetcode-106:从中序与后序遍历序列构造二叉树
65 0
后序遍历的递归和非递归实现有何区别?
后序遍历的递归实现和非递归实现各有优缺点,在实际应用中需要根据具体的问题需求、二叉树的特点以及性能和空间的限制等因素来选择合适的实现方式。
155 56
|
5月前
【LeetCode 37】106.从中序与后序遍历构造二叉树
【LeetCode 37】106.从中序与后序遍历构造二叉树
37 0
【霍罗维兹数据结构】二叉树前中后序遍历 | 层序遍历 | 复制二叉树 | 判断两个二叉树全等 | 可满足性问题
【霍罗维兹数据结构】二叉树前中后序遍历 | 层序遍历 | 复制二叉树 | 判断两个二叉树全等 | 可满足性问题
90 0
深入解析前序遍历:探索二叉树的前进之路
在计算机科学的广袤领域中,数据结构是解决问题的基础,而二叉树作为一种重要且常用的数据结构,为问题的处理提供了高效的方式。在二叉树的世界中,遍历是一项核心操作,它能够让我们有条不紊地访问每一个节点,实现从根部到叶子、从叶子到根部等不同的访问序列。而前序遍历(Preorder Traversal)作为一种经典的遍历方式,在这个过程中扮演着重要角色。
146 0
LeetCode——根据二叉树创建字符串与二叉树的最近公共祖先
LeetCode——根据二叉树创建字符串与二叉树的最近公共祖先
二叉树的前序/中序/后序遍历—采用递归与迭代两种方法实现嗷
二叉树的前序/中序/后序遍历—采用递归与迭代两种方法实现嗷
【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
173 0
【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等