- 博客(6)
- 收藏
- 关注
原创 逆置链表
逆置链表 1.创建新的链表,把要逆置的链表从最结尾把结点一个一个的取出来,尾插到新链表中,或者把要逆置的链表从头把结点一个一个的拿出来,头插到新链表中去。 2.用栈实现链表的逆置,链表的逆置就是要把在前面的链表放在后面,这跟栈先进先出的特点吻合 import java.util.Stack; public class reverseList { static class Node { ...
2019-12-11 09:45:41
1116
原创 保护线程安全的机制
造成线程不安全的三个方面: 基本条件是出现了共享数据 一般也是因为共享数据出现写的情况(如果只读的话,就不会改变数据的值,一般不会出现问题) 原子性、内存的可见性、代码重排序 1.synchronized(加锁)Java中每个对象都有一个锁叫做监视锁 语法:1.作为方法的修饰符 2.作为代码块 public class SynchronizedDemo{ public sync...
2019-11-12 17:00:12
769
原创 带环链表
带环链表的判断及环入口的查找 题目:判断一个链表有没有带环,如果没带环返回null,如果带环请找出环的入口 方法一: 1、定义快慢两个引用,快引用一次走两步,慢引用一次走一步。(注;在代码上体现,一定要快引用走一步,然后判空,慢引用再走一步,快引用再走一步,否则会报:空指向引用) 2、如果快引用走到null了说明链表没有环,如果快引用与慢引用相遇了,说明此链表带环。 3、重新定义两个引用,一个指向...
2019-11-08 19:53:50
251
原创 快排寻找第K大的数字
运用快排寻找第K大的数字 思路: 1.寻找第K大的数字:首先我们可以想到如果数组是有序的话是不是会很容易,如果数组是有序的话,我们只需要利用下标就可以找到第K大的数字了;即第K大的数字就是数组下标为:数组长度-K。 2.接下来就是排序了,我们这里运用的是快速排序的方法。 快排: 1)首先选择一个基准值,一般会以数组的第一个元素作为基准值; 2)把比基准值小的放在基准值的左边,把比基准值大的放在基准...
2019-11-08 19:53:07
814
原创 Map常用方法说明
V get(Object K) 根据指定的K查找对应的V V getOrDefault(Object K ,V defaultValue) 根据指定的K查找对应的V,没有找到用默认值代替 V put(K key,V value) ...
2019-09-10 20:41:45
190
原创 链表的深度复制
链表的经典题目 ##题目:有一个链表,每个结点有两个引用,一个引用是指向下一个结点的 next引 用,一个是指向随意位置的random引用。要求将这个链表完整的复制成一个新的链表 思路: 1、复制原链表的每一个结点,让新的结点插入到原链表的当前结点的下一个位置 例如:原链表:3–>9–>4–>8–>6–>null 复制后的链表:3–>3...
2019-07-28 16:25:58
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅