- 博客(5)
- 收藏
- 关注
原创 面试题 02.07. 链表相交
public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode cur1 = headA; ListNode cur2 = headB; while(cur1 != cur2){//// 两人以相同的速度(一次一步)沿着各自的路径走,当走完各自的路时,再“跳”至对方的路上。(起点平齐速度相同,终点即...
2021-09-05 17:04:45 97
原创 剑指 Offer 18. 删除链表的节点
class Solution { public ListNode deleteNode(ListNode head, int val) { if(head == null) return null;//如果链表为空直接返回空 if(head.val == val) return head.next;//判断头结点是所求节点的话返回下一个节点 ListNode cur = head;//用来遍历的节点 while(cur....
2021-09-05 16:46:33 97
原创 剑指 Offer 24. 反转链表
classSolution{publicListNodereverseList(ListNodehead){ListNodepre=null;//定义一个空节点ListNodecur=head;//定义一个cur节点用来遍历链表while(cur!=null){ListNodenext=cur.next;//保存cur.nextcur.n...
2021-09-05 16:27:03 117
原创 Map put的过程
HashMap是最经典的Map实现,下面以它的视角介绍put的过程: 首次扩容: 先判断数组是否为空,若数组为空则进行第一次扩容(resize); 计算索引: 通过hash算法,计算键值对在数组中的索引; 插入数据: 如果当前位置元素为空,则直接插入数据; 如果当前位置元素非空,且key已存在,则直接覆盖其value; 如果当前位置元素非空,且key不存在,则将数据链到链表末端; 若链表长度达到8,则将链表转换成红黑树,并将数据插入树中; 再次扩容
2021-08-15 14:29:53 2753
原创 Set集合和Map集合中的无序和有序指的是什么?
我们经常说List是有序可重复的,Set是无序不可重复的,我们这里指的有序和无序是说我们遍历输出以后元素的输出顺序是够和我们添加顺序一致。1.List是基于数组实现的,每个元素都有其对应的索引,所以添加顺序自然不会变,怎么添加最后就会怎么输出,而且也不会判定是否有重复的问题,你添加什么元素,我只管往集合中塞就行了,所以也是可以存在null值的。2.Set则不同,我们通常说的Set是无序的指的是HashSet,因为HashSet是根据其Hash值排序的,它不能保证元素的添加顺序,更不能保证自然顺序
2021-08-15 14:13:51 1290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人