链表和问题
两个非空链表表示两个数,数字倒叙排列,比如 (2 -> 4 -> 3) + (5 -> 6 -> 4) 表示 342 + 465 = 807., 最后输出应该为7 -> 0 -> 8。
注意进位问题就好了。
|
|
和上题类似,只是数字存储为顺序存储,解决方法为引入栈和dummy头节点。
|
|
删除链表中的节点
由于给出的是要删除的节点,无法获取其上一个节点,因此将其下一个节点的值复制过来,删除其下一个节点。
|
|
链表中删除一个节点
|
|
删除链表中离end第N的节点
|
|
链表排序问题
对一个链表进行插入排序
设置dummy头节点,然后找到当前节点需要插入的位置。
|
|
合并两个有序链表
百度二面遇到了,这个解法是设置dummy头节点,当时自己选择的是递归方法,比较好想。
|
|
归并排序
快慢指针将链表分为两部分,对两部分进行继续拆分,然后返回其合并结果。复杂度为O(NlogN)。
|
|
链表调整问题
奇数前偶数后的问题
创建两个dummy节点,最后两个连接起来就可以了。
|
|
partion问题,将链表中小于target值的节点放在前面。解决思路还是两个dummy节点。
|
|
将链表 L: L0→L1→…→Ln-1→Ln 变为 L0→Ln→L1→Ln-1→L2→Ln-2→…解决思路,快慢指针加上链表反转。
|
|
排序链表中删除重复节点,要求保留一个
|
|
排序链表中删除重复节点,要求删除所有重复的
|
|
反转一个链表
|
|
反转指定位置的链表,解决思路,添加dummy节点,找到位置即可。
|
|
以K个为一组来反转链表,添加dummy节点,K个节点处理一次,不足k个不处理
|
|
链表旋转问题
|
|
成对交换节点, 添加dummy节点,
|
|
链表是否为回文链表
快慢指针定位,反转后半部分,然后逐一对比。
|
|