手写AOP AOP(面向切面编程)是一种编程范式,允许我们将横切关注点(如日志记录、事务管理、安全等)从业务逻辑中分离出来。下面是一个简单的手写AOP示例,展示了如何在Java中实现AOP功能。 2026-04-08 Java基础 #Spring Boot #AOP
Java 常见排序与二分查找模板 在算法面试或机试(如 ACM 模式)中,往往需要手写或灵活运用常见的排序算法与二分查找算法。以下是使用 Java 实现的常见经典算法模板。 2026-04-08 Java基础 #Java #算法 #排序 #二分查找
LeetCode 101. 对称二叉树 101. 对称二叉树解题思路将根节点的左右子树视为两棵树,递归比较「左子树的左孩子与右子树的右孩子」以及「左子树的右孩子与右子树的左孩子」是否同时值相等且结构对称,空节点成对返回 true、单空返回 false 2026-02-08 LeetCode #树 #深度优先搜索 #广度优先搜索 #二叉树
LeetCode 102. 二叉树的层序遍历 102. 二叉树的层序遍历解题思路层序遍历二叉树,使用队列来实现。首先将根节点加入队列,然后不断从队列中取出节点,并将其左右子节点加入队列,直到队列为空为止。在这个过程中,我们可以记录每一层的节点值,最终返回一个包含每一层节点值的列表。 2026-02-08 LeetCode #树 #广度优先搜索 #二叉树
LeetCode 104. 二叉树的最大深度 104. 二叉树的最大深度解题思路采用递归后序遍历,二叉树的最大深度等于左、右子树最大深度的较大值加 1(当前节点本身),空节点深度为 0 2026-02-08 LeetCode #树 #深度优先搜索 #广度优先搜索 #二叉树
LeetCode 105. 从前序与中序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树解题思路 前序数组首元素为根,在中序数组中定位其位置以划分左右子树区间,再各自切分出对应的子前序与子中序数组,递归构建左右子树并接到根上 用哈希表 O(1) 定位前序首元素在中序数组中的位置,据此算出左子树节点数,将前序与中序区间各划分为左右两部分,递归构建左右子树并接到根上 2026-02-08 LeetCode #数组 #哈希表 #树 #二叉树 #分治
LeetCode 108. 将有序数组转换为二叉搜索树 108. 将有序数组转换为二叉搜索树解题思路取数组中点,递归构造左右子树 当前写法是左闭右闭区间 2026-02-08 LeetCode #数组 #树 #二叉树 #分治 #二叉搜索树