![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
文章平均质量分 54
4tong
这个作者很懒,什么都没留下…
展开
-
NO.6 剑指Offer
剑指Offer第六天复杂链表的复制在这里使用哈希表来保存新旧节点的对应关系,然后在哈希表中更新next和random字段public class Solution { public RandomListNode Clone(RandomListNode pHead) { HashMap<RandomListNode,RandomListNode> map = new HashMap<>(); RandomListNode cur =原创 2021-08-07 23:02:12 · 57 阅读 · 0 评论 -
NO.5 剑指Offer
剑指Offer第5天刷题今天依旧是链表链表中环的入口节点1.判断这个链表有没有环:定义两个引用 fast 和 slow,让它们从这个链表的头结点开始遍历,fast 一次走两步,slow 一次走一步,如果这个链表有环,那么 fast 和 slow 势必会相遇。2.找到这个链表中环的入口节点:如果这个链表有环,fast 和 slow 在C点相遇,A、B之间的距离是x,B、C之间的距离是y,环的周长为c,那么 fast 走过的路径为 x+c+c-y,slow 走过的路径为 x+c-y。根据数学的知识原创 2021-08-06 22:43:28 · 57 阅读 · 0 评论 -
NO.4 剑指Offer
剑指Offer第4天刷题今天开始复习链表:翻转链表需要保留一个节点的前驱和后继,用cur来遍历节点,head就是它的前驱,curNext是它的后继public class Solution { public ListNode ReverseList(ListNode head) { if(head == null) return null; ListNode cur = head; ListNode curNext = cur.next原创 2021-08-05 23:52:41 · 76 阅读 · 0 评论 -
Java实现一个双向链表
Java实现一个双向链表定义一个ListNode类,来定义一个双向链表的节点class ListNode { public int val; public ListNode prev;//节点的前驱 public ListNode next; public ListNode(int val) { this.val = val; }}定义一个MyDoubleList类,在类中实现以下函数public class MyDoubleList {原创 2021-04-22 11:06:09 · 284 阅读 · 2 评论 -
Java实现一个链表
Java实现一个链表概念链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序来实现的。物理上不一定连续,逻辑上一定是连续的。链表的8种结构单向、双向带头、不带头循环、非循环无头单向非循环链表的实现定义一个Node类,来定义链表中的一个节点class Node { public int val; public Node next; public Node(int val){ this.val = val;原创 2021-04-20 21:43:42 · 286 阅读 · 0 评论