牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共15篇)
题解 | #链表的奇偶重排#
struct ListNode* oddEvenList(struct ListNode* head ) { if(head == NULL) &n...
C
链表
双指针
2022-09-21
0
381
题解 | #链表相加(二)#
思路:将两个链表分别反转,同时新建一个头结点准备链接相加后的值。 然后两个从头开始逐位相加,进位的和留下来准备并入下一个结点的计算中,剩下的值放入一个新建的结点中,并按尾插法链入新表中。 最后把链表反转。 struct ListNode* reverse(stru...
C
链表
2022-09-21
0
402
题解 | #链表中的节点每k个一组翻转#
新设一个头结点方便操作,然后用三个指针pre,cur,tmp针对每k个元素进行一次反转,一轮反转之后更新pre为新的cur继续下一轮反转。 而反转的轮数需要根据结点总数来确定,所用先遍历一遍求出总结点数,除以k求出轮数。 struct ListNode* reverse...
C
链表
2022-09-19
0
451
题解 | #划分链表#
首先搞清楚几个问题。 1、如果链表为空,返回空。 2、如果链表中根本没有x,怎么办?那么就把链表中比x小的数放到第一个比x大的数的前面。 3、反正最后的链表就是两部分:比x小的数全部在前部分,相对顺序不变;>=x的数在后半部分,相对位置不变。 那么就可以采用一次遍历,先...
双指针
链表
2022-09-17
0
299
题解 | #链表内指定区间反转#
tip1:先找到待反转链表的前一个结点,然后把待反转的结点一个个拆下来用头插法构建一个反转的链表,最后把链表接回到原链表中去。 tip2:鉴于这里没有头结点,增加一个空的头结点更方便操作从第一个结点开始反转的情况。 tip3:注意链表尾部置空的问题。 struct List...
C
链表
2022-09-12
0
340
题解 | #重排链表#
1、找到后半段链表的起始位置,将后半段结点逐个拆下来用头插法进行反转, 2、然后把反转后的链表结点一个一个插入到前半段链表中,注意间隔一个插一个。 void reorderList(struct ListNode* head ) {&nbs...
C
链表
双指针
2022-09-09
0
292
题解 | #删除有序链表中重复的元素-II#
1.首先加上一个空的头结点,便于处理删除第一个结点的情况。 2.需要设一个pre指针跟踪工作结点及记录一路留下来的结点。 3.用2个指针p,q来比较结点值是否相同。 4.不同时,pre指向p,p指向q,q指向q->next。 5.相同时,继续看q的后面是否还有一样,直到...
C
链表
双指针
2022-09-08
4
393
题解 | #链表的中间结点#
结点个数为奇数时只有一个中心结点,为偶数时有两个中心结点,返回第二个,
C
链表
双指针
2022-08-30
0
389
题解 | #无环单链表插值#
第一步:根据给的有序数组,用尾插法新建一个有序链表。 第二步:通过双指针找到结点应该插入位置的前驱和后继。 第三步:插入该结点。 struct ListNode* insert(int* A, int ALen, int&n...
C
链表
双指针
2022-08-30
0
415
题解 | #链表中倒数最后k个结点#
1.用快慢指针,快指针先走k步,然后两指针一起走,快指针到末尾时,慢指针刚好到倒数第k个位置。 2.仅用一个指针,先全部遍历求出结点总数n,然后让指针从头开始再次遍历,走n-k次即可到达倒数第k个位置。 方法一: struct ListNode* FindKthT...
链表
C
2022-08-22
0
296
首页
上一页
1
2
下一页
末页