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