热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[面试]js前序中序后序

前序遍历根节点左子树右子树遍历顺序为ABC代码:varpreorderTraversalfunction(root){letres[];遍历函数functio

前序遍历

根节点=>左子树=>右子树
在这里插入图片描述
遍历顺序为ABC
在这里插入图片描述



代码:

var preorderTraversal = function(root) {let res = [];// 遍历函数function traversal(root) {if (root !== null) {// 访问根节点的值res.push(root.val);if (root.left) {// 递归遍历左子树traversal(root.left);};if (root.right) {// 递归遍历右子树traversal(root.right);};};};traversal(root);return res;
};



中序遍历

中序遍历满足左子树=>根节点=>右子树的顺序进行查询

在这里插入图片描述
当跑到到根节点B时,先得看看有没有左子树,正好有,所以先遍历了左子树A之后才是B,最后遍历右子树C,所以完整顺序顺序为ABC。

题目来自 leetcode94. 二叉树的中序遍历 ,描述如下:
在这里插入图片描述

var inorderTraversal = function(root) {let res = [];// 遍历函数function traversal(root) {if (root !== null) {if (root.left) {// 递归遍历左子树traversal(root.left);};// 访问根节点的值res.push(root.val);if (root.right) {// 递归遍历右子树traversal(root.right);};};};traversal(root);return res;
};

后序遍历

后序遍历满足左子树=>右子树=>根节点的顺序进行查询,还是从简单二叉树开始:
在这里插入图片描述

从根节点C出发,先访问左子树A,紧接着右子树B,最后根节点C,所以顺序为ABC。
题目来自leetcode145. 二叉树的后序遍历 ,题目描述如下:
在这里插入图片描述

var postorderTraversal = function(root) {let res = [];// 遍历函数function traversal(root) {if (root !== null) {if (root.left) {// 递归遍历左子树traversal(root.left);};if (root.right) {// 递归遍历右子树traversal(root.right);};// 访问根节点的值res.push(root.val);};};traversal(root);return res;
};


JS 前序遍历、中序遍历、后序遍历


推荐阅读
author-avatar
rz白雪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有