![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
凯瑟Kaiser
这个作者很懒,什么都没留下…
展开
-
经典单链表反转三解法
文章目录前言一、递归解法二、迭代解法二、头插法总结前言单链表真的是面试中考得最多的一道题,看似简单,但是当面试官问你还有优化的方法吗?你还能从容给面试官讲出优化的方法吗?今天我们就来看看反转单链表的几种方法。一、递归解法递归解法就是不断将一个大问题不断拆解,直到找到一个小问题的解能够代表全局的解,这就是递归,那么反转链表的Basecase就是当只有一个节点,或者没有node,也就是if (node == null || node.next == null) { retur原创 2021-07-10 15:34:56 · 276 阅读 · 0 评论 -
一道解不出的题
链表真的是有点转不过来,今天又做了一道链表题,调了半天问题也没解决,先放着,提醒自己记得解决。public static ListNode minSequenceListNode(ListNode head){ if (head.next==null) { return head; } //用来统计链表总节点数 int count =1; ListNode tmp = head;原创 2021-04-18 22:39:38 · 62 阅读 · 0 评论 -
2021-04-09
学了字符串,做了字符串的一些相关题总结如下:package InterviewImportant.DP;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;public class MyString { public static void main1(String[] args) { int[] ar =原创 2021-04-09 21:06:08 · 56 阅读 · 0 评论 -
二叉树题
我们学了数据结构中的二叉树,那么我把二叉树相关例题做了之后,总结如下:package InterviewImportant.DS;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;class TreeNode{ char val; TreeNode left; TreeNode right; publ原创 2021-04-09 21:04:07 · 78 阅读 · 0 评论 -
链表题
学了链表,我把链表的相关题做了一下,并总结如下:package InterviewImportant.DS;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;class ListNode{ public int val; public ListNode next; public ListNode(int val) {原创 2021-04-09 21:01:52 · 61 阅读 · 0 评论 -
类加载机制及类加载器
我们都知道java中类有很多,所有的类并不是一开始就放入了虚拟机中,只有当需要用到它的时候,系统才会去调用它,所以才用到了类加载器,这是一个动态的过程,除了动态加载类以外,还会动态初始化类,对类进行动态链接。一、类加载器java中有三种类加载器。每个类加载器在创建的时候已经指定他们对应的目录, 也就是说每个类加载器去哪里加载类是确定的,下面是三种类加载器和他们对应的路径:1.BootStrapClassLoader(根类加载器),用来加载JRE/lib/rt.jar中的类,java的核心类,用原生代原创 2021-03-12 11:23:43 · 220 阅读 · 0 评论 -
堆—特殊二叉树
我们了解了树形结构之后,知道了二叉树,但是二叉树的具体用途我们还是不知道,今天就来看看一种特殊的二叉树–堆,它是一种完全二叉树,著名的topK问题就是用堆来求取的。可以求出一组数中的最大或者最小的元素。所使用的堆就是大根堆、小根堆,所谓大根堆就是根结点的值大于左右子树节点的值,反之就是小根堆了。先建个堆给大家看看,这里以建大堆为例,建堆呢,它有两个方法,向下调整和向上调整。输入一个数组进行测试:从结果可以看出我们的建堆操作成功,下面来看向上调整:同样输入数组进行测试:看完建堆之后,我们来看原创 2021-01-27 21:19:41 · 163 阅读 · 2 评论 -
数据结构之二叉树
1.二叉树的引入学习了链表结构之后,我们会发现链表中的数据始终是一对一的关系,今天我们来看看更深一层的数据结构–树型结构,它属于一对多的关系。下面是树形结构的示例:对于一棵树来说,它有以下这些概念:节点的度:一个节点含有的子树的个数称为该节点的度,如上图A的度为3;树的度:一棵树中,最大的节点的度称为树的度;叶子节点:度为0的节点,如上图E、F、G、H;双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点,如上图A是B的父节点;孩子节点或子节点:一个节点含有的子树的根结点称原创 2021-01-26 21:31:17 · 286 阅读 · 2 评论 -
数据结构之栈和队列
前面我们回顾了数据结构中的线性表(List),今天来看看栈和队列。在数据结构中,事物之间总是会满足某种关系,比如一对一,一对多,多对多,而栈和队列也跟List一样属于一对一的关系。两者基于list实现,比list更严格,操作也受到限制。1、栈的原理和基本实现栈是一种特殊的线性表,它只允许在固定的一端进行数据的插入或者删除,进行删除或者操作的一端叫栈顶,反之另一端叫栈底。栈中的数据元素遵循先进后出的规则,简称FILO。栈的实现方式也有很多种。(1)数组实现2、队列的原理和基本实现队列只允许在一端插原创 2021-01-24 21:52:58 · 168 阅读 · 2 评论 -
数据结构之线性表
相信所有的程序员在学习编程时都会进行数据结构的学习,今天我们就来看一看数据结构中的线性表,它在数据结构中属于一对一的模式,我们还知道一对多的关系指的是树形结构,多对多针对的是图,下面将重点介绍线性表。原创 2020-12-21 15:59:40 · 325 阅读 · 0 评论