赵俊的博客

在记录中成长


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

  • 热门

  • 友链

  • 脚本

  • 搜索

巧用 MyBatis 构建树形结构

发表于 2019-06-07 | 分类于 mybatis | 评论数: | 阅读次数:

在项目中我们经常会碰到这种格式的数据, 需要将其转化为树形结构:

menu_id parent_id menu_name url
1 0 权限管理 #
2 1 用户管理 /user/index
3 1 角色管理 /role/index
4 1 菜单权限 /menu/index
11 0 系统监控 #
12 11 登录日志 /log/login/index
19 11 操作日志 /log/sys/index
20 11 在线用户 /online/index
27 1 操作权限 /operator/index
28 1 部门管理 /dept/index
29 11 系统管理 /system/index
30 0 账号关联 /oauth2/index

一般的做法是查询出所有, 然后递归构建树形结构, 但其实可以巧用 MyBatis 在查询时就进行转换, 这用到了 MyBatis 的 resultMap 功能.

首先由以下表结构定义:

阅读全文 »

LeetCode 530 Minimum Absolute Difference in BST

发表于 2019-05-23 | 更新于 2019-05-27 | 分类于 算法 | 评论数: | 阅读次数:

题意

给予一颗非负二叉搜索树, 返回任意两个节点之间的最小相差值.

注: 树至少有两个节点.

例 :

1
2
3
4
5
6
7
8
9
10
11
给予树:


1
\
4
/ \
2 7


返回: 1 (1 和 2 之间相差 1).
阅读全文 »

LeetCode 783 Minimum Distance Between BST Nodes

发表于 2019-05-23 | 更新于 2019-05-25 | 分类于 算法 | 评论数: | 阅读次数:

题意

给予一颗二叉搜索树, 返回任意两个节点之间的最小相差值.

注: 树至少有两个节点.

例 :

1
2
3
4
5
6
7
8
9
10
11
给予树:


1
\
4
/ \
2 7


返回: 1 (1 和 2 之间相差 1).
阅读全文 »

LeetCode 938 Range Sum of BST

发表于 2019-05-22 | 分类于 算法 | 评论数: | 阅读次数:

题意

给予一颗二叉搜索树, 返回区间 L - R 之间的所有值的总和. 二叉搜索树中没有重复值.

例 :

1
2
3
4
5
6
7
8
9
10
11
给予树, L = 3, R = 8:

5
/ \
3 6
/ \ \
2 4 8
/ / \
1 7 9

返回: 3 + 4 + 5 + 6 + 7 + 8 = 33.
阅读全文 »

LeetCode 108 Convert Sorted Array to Binary Search Tree

发表于 2019-05-21 | 分类于 算法 | 评论数: | 阅读次数:

题意

给予一个从小到大的数组, 构建一颗二叉平衡树, 即每个节点的两个子树的深度不能相差超过 1.

例 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
给予数组: [-10, -3, 0, 5, 9]

返回以下树都是符合条件的:
0
/ \
-3 9
/ /
-10 5


0
/ \
-10 5
\ \
-3 9
阅读全文 »

LeetCode 538 Convert BST to Greater Tree

发表于 2019-05-20 | 分类于 算法 | 评论数: | 阅读次数:

题意

给予一颗二叉搜索树,每个节点都加上大于他的所有节点的和, 如节点 3, 有两个节点大于他, 分别是 10, 15, 那么节点 3 的值就要变为: 3 + 10 + 15 = 28.

例 :

1
2
3
4
5
6
7
8
9
10
给予树:

5
/ \
2 13

返回树:
18
/ \
20 13
阅读全文 »
1234…31
赵俊

赵俊

一个 Java 学习者的博客,分享 Java 干货, VPS 知识, 软件推荐等。
184 日志
15 分类
95 标签
Creative Commons
Links
  • 在线网盘
  • 免费图床
  • 在线 JSON 解析
  • U-FILE 云盘
0%
冀ICP备17004571号-3 © 2016 – 2020 赵俊
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Pisces v7.0.1