摘要:
leetcode 148. 排序链表 自顶向下归并排序 用快慢指针找到序列中间位置 这里要注意一个细节:始终使fast指向链表尾节点的next节点(也就是null),这样slow指向后半段链表的起点,避免出现死循环。 前半段链表[head, slow),后半段[slow, fast) 合并两个排序链 阅读全文
摘要:
SQL通用语法、SQL分类(DDL:操作数据库、表等;DML:对表中的数据进行增删改;DQL:对表中的数据进行查询;DCL:对数据库进行权限控制)、约束、数据库设计、多表查询、事务 阅读全文
摘要:
leetcode 143. 重排链表 题意: 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不能只是单纯的改变节点内部的值,而 阅读全文
摘要:
leetcode 142. 环形链表 II 题意: 不可更改链表节点,给定链表表头,返回链表在环中的第一个节点,没有返回null 题解:哈希表集合 遍历一遍链表,哈希表集合维护链表节点,当访问到的当前节点已经在集合中,说明当前节点是所求节点 哈希表集合解代码 /** * Definition for 阅读全文
摘要:
leetcode 92. 反转链表 II 题意:反转链表的[left, right],返回链表表头 题解:直接模拟删除的过程即可 定义重要节点 记录left位置的节点为lnode,right位置的节点为rnode lnode的前驱节点为pre,right位置的后继节点为suc 初始化pre = su 阅读全文
摘要:
leetcode 82. 删除排序链表中的重复元素 II 题意:只要链表中元素x重复出现了,删除所有元素x(刚开始还读错题了……) 题解: 在表头前添加链表的虚拟节点dummy 遍历链表 (1)如果当前节点cur的下一个节点cur.next和cur.next.next相等,则意味着出现了重复元素,记 阅读全文
摘要:
合并两个排序链表 模拟维护一个合并链表,每次添加两个排序链表中较小val的节点即可 模拟代码 public ListNode mergeTwo(ListNode a, ListNode b) { if(a == null) return b; if(b == null) return a; List 阅读全文
摘要:
leetcode 19. 删除链表的倒数第 N 个结点 题解1:通过链表长度获取[倒数第n个节点]位置 计算链表长度 找到[倒数第N个节点]的前一个节点 删除[倒数第N个节点] 注意特殊情况:删除的是第一个节点时,直接返回第二个节点即可 点击查看代码 /** * Definition for sin 阅读全文
摘要:
leetcode 2. 两数相加 题意:两个长度为[1, 100]的大数,分别倒序存储(个位在链表头)在两个链表中,计算两个数的和,并倒序存储在一个新链表,返回链表表头。数据中不存在前导零。 题解:模拟大数相加,注意维护进位carry即可 代码 /** * Definition for singly 阅读全文
摘要:
leetcode 234. 回文链表 题意:判断一个链表是不是回文(中心对称)的 【反转链表】题解1: 得到原链表的反转链表,然后对比原链表与反转链表的内容是否一致即可。 反转链表版本代码 /** * Definition for singly-linked list. * public class 阅读全文