文章 2022-02-17 来自:开发者社区

剑指Offer——序列化二叉树(JS实现)

题目描述解题思路(序列化)本题分为两个部分:一是序列化二叉树,二是反序列化二叉树。序列化二叉树:将以可二叉树,变成一个字符串,这个字符串本人刚开始以为是按照题目给的例子得是层序遍历才行,后来看了题解才知道,原来前序遍历也可以,下面的解法是采用的层序遍历,层序遍历使用的是数组存储每一层的下一层元素,然后将这个数组变成循环的条件,知道数组为空序列化代码const serialize = (root)....

剑指Offer——序列化二叉树(JS实现)
文章 2022-02-17 来自:开发者社区

剑指Offer——二叉树中和为某一值的路径(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于二叉树的深度优先遍历首先我们要了解DFS的遍历过程当root节点走到null的时候,说明该条路径已经遍历完毕当一条路径遍历完毕之后,我们使用浅拷贝的方式将一条路径拷贝进res最终结果数组中然后开始返回,每次返回都要将stack数组的最后一个元素清空,这是本题的核心点,刚开始被这个问题困扰了很久。解题代码var ....

剑指Offer——二叉树中和为某一值的路径(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——对称的二叉树(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于二叉树的问题本题的核心在于通过层次遍历,来将一层的元素的值和这一层元素进行反转之后,相同下标的元素是否相同,只要相同,则说明是对称二叉树,反之则不是对称二叉树。解题代码var isSymmetric = function(root) { if (!root) return true; let f...

剑指Offer——对称的二叉树(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——从上到下打印二叉树III(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于二叉树的层次遍历问题首先定义三个数组数组queue用来存放当前层的所有元素指针数组temp充当临时数组,用来存放当前元素所有指针的左右孩子指针数组test用来存放每一层元素的值当test存储完一层的元素后,就将queue置为空,然后遍历temp将每个元素的左右孩子节点继续放入queue,继续下次循环解题代码va....

剑指Offer——从上到下打印二叉树III(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——二叉树的镜像(JS实现)

题目描述解题思路需要明确指出的是我们返回的排序好的root对象我们首先判断root这个参数的左右孩子节点是否为空,只要为空,则说明排序好了。不为空,则使用交换方法,交换左右指针。最后使用递归,将左右孩子节点继续投入函数中。实现代码var mirrorTree = function (root) { fun(root); return root; }; var fun = func...

剑指Offer——二叉树的镜像(JS实现)
文章 2022-02-17 来自:开发者社区

剑指Offer——二叉树的深度(JS实现) 题目描述

题目描述解题思路使用递归的思想,去左子孩子的最大深度和右子孩子的最大深度中的最大值 + 1解题代码var maxDepth = function(root) { if (!root) { return 0; } return Math.max(maxDepth(root.left),maxDepth(root.right)) + 1; };

剑指Offer——二叉树的深度(JS实现) 题目描述
文章 2022-02-17 来自:开发者社区

剑指Offer——二叉树的最近公共祖先(JS实现)

题目描述解题思路使用DFS的遍历思想进行遍历二叉树如果为空节点或p节点或q节点,直接返回该节点遍历的时候,看返回值,如果p和q都存在就返回当前的root节点,如果只有一个存在就反返回不为空的节点。实现代码var lowestCommonAncestor = function(root, p, q) { if (root === null || root === p || root ===...

剑指Offer——二叉树的最近公共祖先(JS实现)
文章 2022-02-17 来自:开发者社区

剑指Offer——重建二叉树(JS实现)

题目描述解题思路首先我们要明白遍历规则。前序遍历指的是根>左>右中序遍历指的是左>根>右使用递归遍历的思想,首先定义递归结束条件,如果输入的列表只有一个元素,则直接返回这个树节点。让前序遍历数组的第一个元素作为根节点。定义变量i用来分割中序遍历数组中的左右子树,这个i就是根节点在中序遍历数组中的下标。两个参数,可以分别理解为子树的前序遍历和中序遍历实现代码var buil....

剑指Offer——重建二叉树(JS实现)
文章 2022-02-17 来自:开发者社区

剑指Offer——从上到下打印二叉树(JS实现)

题目描述解题思路使用队列来存储同一层的元素使用数组1来存放同一层元素的所有值使用数组2来存放用一层元素的所有指针将数组1放进结果列表将数组2所有元素的左右孩子放进队列,当队列的长度不为零的时候继续循环。实现代码var levelOrder = function (root) { // 如果系统给的根元素为空,直接返回 if (!root) return []; // 定义...

剑指Offer——从上到下打印二叉树(JS实现)
文章 2022-02-17 来自:开发者社区

剑指Offer——从上到下打印二叉树(JS实现)

题目描述解题思路使用队列的思想来进行层次遍历数组队列存储当前节点的左右指针,然后将队头清除,知道队列中的所有元素都被清空。解题代码var levelOrder = function (root) { if (root === null) return []; const result = []; const pointer = [root]; while (poi...

剑指Offer——从上到下打印二叉树(JS实现)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注