经典题
1、单链表反转
剑指 Offer 24. 反转链表
反转链表 II
2、链表中环的检测
3、两个有序的链表合并
- 合并两个有序链表merge-two-sorted-lists
- 合并K个升序链表merge-k-sorted-lists
- 解法
- done,采用分治思路。可以基本zero bug写出
- 另外可以使用优先队列的思路
- 链表题采用哨兵结点省去了很多判断,值得推荐
- 位操作符 >> (3 >> 1 相当于 Math.floor(3 / 2))。用位操作简洁高效
- 十进制转二进制. 整数除以2, 辗转相除。然后按照余数倒序,高位补0 4 二进制转10进制,如0000 1001. 从右往左: 1 x 2^0 + 0 + 0 + 1 x 2^3 = 9
- merge递归处,因为是函数调用栈,可以用栈的 后进先出的特点,去理解此处递归调用中merge操作对两两链表的合并
4、删除链表倒数第 n 个结点
5、求链表的中间结点
6、利用快慢指针检测单向链表中是否存在环
https://blog.csdn.net/xgjonathan/article/details/18034825
总结题的类型:
