![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 91
九号新秀
这个作者很懒,什么都没留下…
展开
-
leetcode 98 验证二叉搜索树 Java
题目链接 // 二叉搜索树中序遍历的结果会是一个递增的序列,因此只需判断当前结点是否比前一个遍历的结点大。 class Solution { boolean flag = true; TreeNode prev = null; public boolean isValidBST(TreeNode root) { if (root == null) { return true; } if (flag) {原创 2020-12-09 09:14:04 · 66 阅读 · 0 评论 -
leetcode 110 平衡二叉树
题目链接 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 两种方法: class Solution { // 自顶向下,但此方法会产生大量重复计算 // 先判断以当前结点为根结点的子树是不是平衡树,再继续判断左右子树是不是平衡树 public boolean isBalanced(TreeNode root) { if (root == null) {原创 2020-12-09 09:09:50 · 66 阅读 · 0 评论 -
二叉搜索树的查找 插入 删除 Java
class Solution { public TreeNode searchBST(TreeNode root, int val) { if (root == null) { return null; } if (val < root.val) { return searchBST(root.left, val); } else if (val > root.原创 2020-12-08 22:48:57 · 58 阅读 · 0 评论 -
洛谷P3373 线段树模板2 Java
题目链接 import java.io.*; class Node { int l; // 区间左端点 int r; // 区间右端点 long sum; // 区间和 long add; // 加法标记 long mul; // 乘法标记 public Node(int l, int r, long sum, long add, long mul) { this.l = l; this.r = r; this原创 2020-12-04 20:20:40 · 176 阅读 · 2 评论 -
洛谷P3372 线段树模板1 Java
原题链接 import java.io.*; class Node { int l; // 区间左端点 int r; // 区间右端点 long sum; // 区间和 long lazy; // 懒惰标记 public Node(int l, int r, long sum, long lazy) { this.l = l; this.r = r; this.sum = sum; this.lazy原创 2020-12-04 13:03:26 · 162 阅读 · 0 评论 -
堆的实现 Java
当一棵二叉树的每个结点每个结点都大于等于他的两个子结点时,称为堆有序。 /** * 最小堆的实现 */ public class MinPQ<T extends Comparable<T>>{ private T[] pq; // 位置0是空掉的 private int N = 0; // 堆中元素的个数 // 构造容量为size的堆 public MinPQ(int MAXN) { pq = (T[])new Comp.原创 2020-11-28 22:03:17 · 128 阅读 · 0 评论 -
二叉树的遍历 Java实现
前序遍历, 中序遍历和后序遍历过程: 遍历过程中经过结点的路线一样, 只是访问各结点时机不同 前序遍历 class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> ans = new ArrayList<>(); Stack<TreeNode> stack = new Stack<>();原创 2020-11-20 11:18:33 · 60 阅读 · 0 评论 -
栈的几道练习题
力扣 P20 有效的括号 public class Solution{ public boolean isValid(String s) { // 空字符串可被认为是有效字符串 if (s.length() == 0) { return true; } HashMap<Character, Character> hm = new HashMap<>(); hm.put('(',原创 2020-10-26 12:19:50 · 297 阅读 · 0 评论