随笔分类 -  典型算法题-链表

摘要:147. 对链表进行插入排序 思路: 与数组插入排序的思路相同,都是先有一个有序序列,然后拿着待插入元素,在有序序列中找到正确的位置; 链表有序序列的初始化方式就是,先定义一个哨兵dummyNode,然后让head节点成为第一个有序的序列的元素,维护一个lastSortNode保存有序序列的最后一个 阅读全文
posted @ 2021-12-28 21:31 guoyu1 阅读(34) 评论(0) 推荐(0) 编辑
摘要:148. 排序链表 思路: 采用对数组进行归并排序的相同思路,依旧是对链表进行递归,递归到只有一个元素的时候,在对链表进行合并操作。 只不过,在查找链表的中间点的方式是利用快慢指针。在合并两个有序链表的时候,创建哨兵进行合并。 图解答案,自顶向下归并排序:https://leetcode-cn.co 阅读全文
posted @ 2021-12-27 21:26 guoyu1 阅读(34) 评论(0) 推荐(0) 编辑
摘要:23. 合并K个升序链表 思路: 将两个有序链表合并,推广到n个链表的合并,就是将n个链表两两合并,再合并,就是归并排序的思维,现将数组递归到单个元素终止,然后执行两两merge。 https://leetcode-cn.com/problems/merge-k-sorted-lists/solut 阅读全文
posted @ 2021-12-21 19:43 guoyu1 阅读(32) 评论(0) 推荐(0) 编辑
摘要:146. LRU 缓存机制 (1)直接使用LinkedHashMap package 链表; import java.util.LinkedHashMap; import java.util.Map; public class LRUCache extends LinkedHashMap<Integ 阅读全文
posted @ 2021-12-01 19:56 guoyu1 阅读(47) 评论(0) 推荐(0) 编辑
摘要:2. 两数相加 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val 阅读全文
posted @ 2021-11-27 15:41 guoyu1 阅读(27) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示