树的递归
龙马啊
人要有理想,没有理想就不是人啦。
展开
-
前端深拷贝 树结构的生成-高级JS
最近看了两个面试题,之前有写过,再写一遍深拷贝 let obj = { x: 0, y: [1, 2, 3], z: { a: 0, b: 1 } } function fn(obj) { if (!obj) return {} let val = Array.原创 2022-05-07 22:37:19 · 504 阅读 · 0 评论 -
二叉树的最小深度-递归
下面这个代码是树的结构 let tree = { val: "1", left: { val: "2", left: { val: "4", left: null , right: null }, right: { val: "5", left: null , right: null } }, right: { va原创 2022-05-01 23:55:13 · 688 阅读 · 0 评论 -
树结构的生成-递归
最近遇到的一个树的生成我有的数据类型 let data = [ "用户模块/用户信息", "用户模块/用户头像", "登录模块/token信息" ]需要生成的树的结构 let target = [ { name: '用户模块', children: [ {原创 2022-04-26 22:54:13 · 145 阅读 · 0 评论 -
归并排序-递归
需要注意的是 递归结束的条件 以及while的条件写文章的目的,还是去理解,而不是去记住这些东西 <script> let arr = [8, 4, 1, 7, 3, 5, 6, 2] function fn(arr) { // 递归的结束条件 if (arr.length <= 1) return arr let mid = Math.floor(arr.length / 2)原创 2022-04-24 22:37:41 · 178 阅读 · 0 评论 -
二分法排序-递归
学习递归之后,发现可以解决很多问题,之前第一次接触二分法排序的时候,觉得很复杂,现在觉得就这,就这。分析一下, 所谓的二分法就是拆中分类主要就是分为左右两个数组, 最后合并成一个数组 // 二分法排序 let arr = [3, 4, 5, 67, 43, 32] let fn = (arr) => { if (!arr.length) { return }原创 2022-04-24 00:29:24 · 286 阅读 · 0 评论 -
数组扁平化递归处理
最近被递归折磨了,但是做什么都喜欢用递归了,希望越用就越了解。目标代码 let arr = [[1, 2, 3], 2, 3, [2, 3, 4], [33, [44]]] target => [1, 2, 3, 2, 3, 2, 3, 4, 33, 44]首先对 arr 进行遍历, 如果是对象类型,就再进行遍历,如果不是就push // 数组扁平化 let arr = [[1, 2, 3], 2, 3, [2, 3, 4], [33, [44]]] l原创 2022-04-23 19:14:37 · 140 阅读 · 0 评论 -
初识递归学习
发现很多人都觉得递归很简单,让我不太理解。递归还是很难的,对于前端来说能掌握树的查询也就够了。在算法中可以解决很多问题。先来几个递归的遇到的场景工作中遇到这样的一个场景 求这个对象属性有多少个 正常的来说有 4个 children 是不包括的 let obj = { name: "zs", age: 18, children: { like: '网球', .原创 2022-04-19 22:33:20 · 217 阅读 · 0 评论